Features: BV Text node with management-gated writing assistance (translate, improve, undo, prompt profiles); reuse of prepared MODEL/CLIP state for Krea 2 and Anima LLLite consumers; Regional refactoring. Security boundaries: one wall-clock budget per Remote LLM request enforced by a socket-closing watchdog across connect, TLS handshake, headers, chunk framing and body; writing assistance uses the profile's configured timeout; a shared bounded JSON reader with route-specific limits on every JSON route; endpoint binding negative tests for the assist path. Release and packaging: SECURITY.md; bundled-library notices and a readable bundle header; Registry scan replica as a hard test with a pinned count; a packaged-file-set test; publish only from a validated push to main with provenance checks, pinned comfy-cli, an input manifest and a byte-exact comparison of the stored archive; npm audit and a whole js/ rebuild gate in Validate; design references, brand sources and a type declaration excluded from the package. README and changelog for 1.4.4. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
19 lines
817 B
Python
19 lines
817 B
Python
import importlib.util
|
|
from pathlib import Path
|
|
import unittest
|
|
|
|
|
|
class TextNodeTests(unittest.TestCase):
|
|
def test_native_text_is_exact_and_requires_no_provider(self):
|
|
path = Path(__file__).parents[1] / "py/nodes/bv_text.py"
|
|
spec = importlib.util.spec_from_file_location("bv_text_test", path)
|
|
module = importlib.util.module_from_spec(spec)
|
|
spec.loader.exec_module(module)
|
|
node = module.NODE_CLASS_MAPPINGS["BV Text"]()
|
|
for text in ("", " ", "Grüße 👋\nsecond line\r\n", "{a|b} @@markup"):
|
|
self.assertEqual(node.output(text), (text,))
|
|
self.assertEqual(node.RETURN_TYPES, ("STRING",))
|
|
options = node.INPUT_TYPES()["required"]["text"][1]
|
|
self.assertTrue(options["multiline"])
|
|
self.assertFalse(options["dynamicPrompts"])
|