Files
relhamdi-ComfyUI-RE-CustomU…/tests/test_prompt_add_or_replace.py

89 lines
2.3 KiB
Python

import pytest
from src.nodes.prompt_add_or_replace import PromptAddOrReplace
@pytest.fixture
def node():
return PromptAddOrReplace()
def run(node, **kwargs):
defaults = dict(
join=", ",
mode_toggle=True,
options="",
selected="",
input="",
)
defaults.update(kwargs)
return node.process(**defaults)
# --- Add mode (mode_toggle=True) ---
def test_add_with_input_and_selected(node):
(text,) = run(node, input="blue eyes", selected="sparkle", mode_toggle=True)
assert text == "blue eyes, sparkle"
def test_add_no_selected_returns_input(node):
(text,) = run(node, input="blue eyes", selected="", mode_toggle=True)
assert text == "blue eyes"
def test_add_no_input_returns_selected(node):
(text,) = run(node, input="", selected="sparkle", mode_toggle=True)
assert text == "sparkle"
def test_add_both_empty_returns_empty(node):
(text,) = run(node, input="", selected="", mode_toggle=True)
assert text == ""
def test_add_dash_dash_selected_passthrough(node):
(text,) = run(node, input="blue eyes", selected="--", mode_toggle=True)
assert text == "blue eyes"
def test_add_custom_join(node):
(text,) = run(
node, input="blue eyes", selected="sparkle", join=" | ", mode_toggle=True
)
assert text == "blue eyes | sparkle"
def test_add_cleanup_applied(node):
(text,) = run(node, input="blue eyes,", selected="sparkle", mode_toggle=True)
assert ",," not in text
# --- Replace mode (mode_toggle=False) ---
def test_replace_with_selected_replaces_input(node):
(text,) = run(node, input="blue eyes", selected="red eyes", mode_toggle=False)
assert text == "red eyes"
assert "blue eyes" not in text
def test_replace_no_selected_returns_empty(node):
(text,) = run(node, input="blue eyes", selected="", mode_toggle=False)
assert text == ""
def test_replace_dash_dash_returns_empty(node):
(text,) = run(node, input="blue eyes", selected="--", mode_toggle=False)
assert text == ""
def test_replace_no_input_returns_selected(node):
(text,) = run(node, input="", selected="red eyes", mode_toggle=False)
assert text == "red eyes"
def test_replace_both_empty_returns_empty(node):
(text,) = run(node, input="", selected="", mode_toggle=False)
assert text == ""