70 lines
2.2 KiB
Python
70 lines
2.2 KiB
Python
import unittest
|
|
|
|
from src.ProductedString import ProductedString
|
|
|
|
|
|
class TestProductedString(unittest.TestCase):
|
|
def setUp(self):
|
|
self.node = ProductedString()
|
|
|
|
def test_combine_input_lists_two_lists(self):
|
|
result = self.node.combine_input_lists(
|
|
", ", 0, "\n", list_a=["a", "b"], list_b=["1", "2"]
|
|
)
|
|
self.assertEqual(
|
|
result,
|
|
(
|
|
"a, 1\na, 2\nb, 1\nb, 2",
|
|
["a, 1", "a, 2", "b, 1", "b, 2"],
|
|
),
|
|
)
|
|
|
|
def test_combine_input_lists_only_connected_lists_are_used(self):
|
|
result = self.node.combine_input_lists(
|
|
" | ",
|
|
0,
|
|
"\n",
|
|
list_a=["a"],
|
|
list_c=["1", "2"],
|
|
list_f=["x"],
|
|
ignored="not-a-list",
|
|
)
|
|
self.assertEqual(
|
|
result,
|
|
("a | 1 | x\na | 2 | x", ["a | 1 | x", "a | 2 | x"]),
|
|
)
|
|
|
|
def test_combine_input_lists_empty_when_no_lists_are_connected(self):
|
|
result = self.node.combine_input_lists(", ", 0, "\n")
|
|
self.assertEqual(result, ("", []))
|
|
|
|
def test_combine_input_lists_filters_empty_strings(self):
|
|
result = self.node.combine_input_lists(
|
|
", ", 0, "\n", list_a=["a", ""], list_b=["1", ""]
|
|
)
|
|
self.assertEqual(result, ("a, 1\na\n1", ["a, 1", "a", "1"]))
|
|
|
|
def test_combine_input_lists_uses_custom_newline_character(self):
|
|
result = self.node.combine_input_lists(
|
|
", ", 0, " / ", list_a=["a"], list_b=["1", "2"]
|
|
)
|
|
self.assertEqual(result, ("a, 1 / a, 2", ["a, 1", "a, 2"]))
|
|
|
|
def test_combine_input_lists_respects_max_results(self):
|
|
result = self.node.combine_input_lists(
|
|
", ", 3, "\n", list_a=["a", "b"], list_b=["1", "2", "3"]
|
|
)
|
|
self.assertEqual(
|
|
result,
|
|
("a, 1\na, 2\na, 3", ["a, 1", "a, 2", "a, 3"]),
|
|
)
|
|
|
|
def test_node_definition_exposes_regular_string_and_custom_list(self):
|
|
self.assertEqual(self.node.RETURN_NAMES, ("STRING", "list"))
|
|
self.assertEqual(self.node.RETURN_TYPES, ("STRING", "LIST"))
|
|
self.assertFalse(hasattr(self.node, "OUTPUT_IS_LIST"))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|