Minor updates
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
import unittest
|
||||
from string_strip_node import StringStripNode
|
||||
from string_replace_node import StringReplaceNode
|
||||
|
||||
class TestStringNodes(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.strip_node = StringStripNode()
|
||||
self.replace_node = StringReplaceNode()
|
||||
|
||||
def test_strip_basic_functionality(self):
|
||||
input_string = "This is a test string with test word"
|
||||
strings_to_remove = "test"
|
||||
result = self.strip_node.string_strip(
|
||||
input_string=input_string,
|
||||
strings_to_remove=strings_to_remove,
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result, "This is a string with word")
|
||||
|
||||
def test_strip_multiple_strings(self):
|
||||
input_string = "This is a test string with another test and More Text"
|
||||
strings_to_remove = """test
|
||||
More Text"""
|
||||
result = self.strip_node.string_strip(
|
||||
input_string=input_string,
|
||||
strings_to_remove=strings_to_remove,
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result, "This is a string with another and")
|
||||
|
||||
def test_strip_case_sensitivity(self):
|
||||
input_string = "Test TEST test"
|
||||
strings_to_remove = "test"
|
||||
|
||||
# Case-insensitive
|
||||
result1 = self.strip_node.string_strip(
|
||||
input_string=input_string,
|
||||
strings_to_remove=strings_to_remove,
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result1, "")
|
||||
|
||||
# Case-sensitive
|
||||
result2 = self.strip_node.string_strip(
|
||||
input_string=input_string,
|
||||
strings_to_remove=strings_to_remove,
|
||||
match_case=True,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result2, "Test TEST")
|
||||
|
||||
def test_strip_punctuation_handling(self):
|
||||
input_string = "test, test: test. test; test"
|
||||
strings_to_remove = "test"
|
||||
result = self.strip_node.string_strip(
|
||||
input_string=input_string,
|
||||
strings_to_remove=strings_to_remove,
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result, "")
|
||||
|
||||
def test_replace_basic_functionality(self):
|
||||
input_string = "Hello world"
|
||||
replacement_pairs = "world::everyone"
|
||||
result = self.replace_node.string_replace(
|
||||
input_string=input_string,
|
||||
replacement_pairs=replacement_pairs,
|
||||
replacement_delimiter="::",
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result, "Hello everyone")
|
||||
|
||||
def test_replace_multiple_pairs(self):
|
||||
input_string = "The quick brown fox jumps over the lazy dog"
|
||||
replacement_pairs = """quick::slow
|
||||
brown::black
|
||||
fox::cat"""
|
||||
result = self.replace_node.string_replace(
|
||||
input_string=input_string,
|
||||
replacement_pairs=replacement_pairs,
|
||||
replacement_delimiter="::",
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result, "The slow black cat jumps over the lazy dog")
|
||||
|
||||
def test_replace_case_sensitivity(self):
|
||||
input_string = "Hello HELLO hello"
|
||||
replacement_pairs = "hello::hi"
|
||||
|
||||
# Case-insensitive
|
||||
result1 = self.replace_node.string_replace(
|
||||
input_string=input_string,
|
||||
replacement_pairs=replacement_pairs,
|
||||
replacement_delimiter="::",
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result1, "hi hi hi")
|
||||
|
||||
# Case-sensitive
|
||||
result2 = self.replace_node.string_replace(
|
||||
input_string=input_string,
|
||||
replacement_pairs=replacement_pairs,
|
||||
replacement_delimiter="::",
|
||||
match_case=True,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result2, "Hello HELLO hi")
|
||||
|
||||
def test_replace_custom_delimiter(self):
|
||||
input_string = "Hello world"
|
||||
replacement_pairs = "world->everyone"
|
||||
result = self.replace_node.string_replace(
|
||||
input_string=input_string,
|
||||
replacement_pairs=replacement_pairs,
|
||||
replacement_delimiter="->",
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result, "Hello everyone")
|
||||
|
||||
def test_extra_spaces_handling(self):
|
||||
# Test for StringStripNode
|
||||
input_string = "This is a test string"
|
||||
strings_to_remove = "test"
|
||||
result1 = self.strip_node.string_strip(
|
||||
input_string=input_string,
|
||||
strings_to_remove=strings_to_remove,
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result1, "This is a string")
|
||||
|
||||
# Test for StringReplaceNode
|
||||
replacement_pairs = "is::was"
|
||||
result2 = self.replace_node.string_replace(
|
||||
input_string=input_string,
|
||||
replacement_pairs=replacement_pairs,
|
||||
replacement_delimiter="::",
|
||||
match_case=False,
|
||||
match_whole_string=True,
|
||||
remove_extra_spaces=True
|
||||
)[0]
|
||||
self.assertEqual(result2, "This was a test string")
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user