67 lines
2.5 KiB
Python
67 lines
2.5 KiB
Python
import unittest
|
|
|
|
from src.MultilineStringToList import MultilineStringToList
|
|
|
|
|
|
class TestMultilineStringToList(unittest.TestCase):
|
|
def setUp(self):
|
|
self.node = MultilineStringToList()
|
|
|
|
def test_converts_multiline_text_with_default_cleanup(self):
|
|
result = self.node.convert_to_list(" alpha \n\n beta\n \ngamma ")
|
|
self.assertEqual(result, (["alpha", "beta", "gamma"],))
|
|
|
|
def test_supports_crlf_and_cr_line_endings(self):
|
|
result = self.node.convert_to_list("alpha\r\nbeta\rgamma")
|
|
self.assertEqual(result, (["alpha", "beta", "gamma"],))
|
|
|
|
def test_trailing_line_ending_does_not_add_empty_item(self):
|
|
result = self.node.convert_to_list("alpha\nbeta\n", keep_empty_lines=True)
|
|
self.assertEqual(result, (["alpha", "beta"],))
|
|
|
|
def test_empty_text_returns_empty_list(self):
|
|
result = self.node.convert_to_list("")
|
|
self.assertEqual(result, ([],))
|
|
|
|
def test_comment_like_lines_are_preserved(self):
|
|
result = self.node.convert_to_list("# comment\n// comment\nvalue")
|
|
self.assertEqual(result, (["# comment", "// comment", "value"],))
|
|
|
|
def test_can_preserve_whitespace(self):
|
|
result = self.node.convert_to_list(
|
|
" alpha \n beta ", trim_whitespace=False
|
|
)
|
|
self.assertEqual(result, ([" alpha ", " beta "],))
|
|
|
|
def test_can_preserve_empty_lines_after_trimming(self):
|
|
result = self.node.convert_to_list(
|
|
" alpha \n \nbeta", keep_empty_lines=True
|
|
)
|
|
self.assertEqual(result, (["alpha", "", "beta"],))
|
|
|
|
def test_can_preserve_whitespace_and_empty_lines(self):
|
|
result = self.node.convert_to_list(
|
|
" alpha \n\n \nbeta",
|
|
trim_whitespace=False,
|
|
keep_empty_lines=True,
|
|
)
|
|
self.assertEqual(result, ([" alpha ", "", " ", "beta"],))
|
|
|
|
def test_node_definition(self):
|
|
input_types = self.node.INPUT_TYPES()
|
|
self.assertEqual(input_types["required"]["text"][0], "STRING")
|
|
self.assertTrue(input_types["required"]["text"][1]["multiline"])
|
|
self.assertTrue(
|
|
input_types["required"]["trim_whitespace"][1]["default"]
|
|
)
|
|
self.assertFalse(
|
|
input_types["required"]["keep_empty_lines"][1]["default"]
|
|
)
|
|
self.assertEqual(self.node.RETURN_TYPES, ("LIST",))
|
|
self.assertEqual(self.node.CATEGORY, "TextListProduct")
|
|
self.assertFalse(hasattr(self.node, "OUTPUT_IS_LIST"))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|