X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=tests%2Fstring_utils_test.py;h=51848946b68c3b661cb21d6b7d38c3eaad15e5ef;hb=f135ec7ae3d7ca347d7489eb28d30b5db98f49de;hp=157de0a8df9044b614e47a2b943aa79803b948c5;hpb=497fb9e21f45ec08e1486abaee6dfa7b20b8a691;p=python_utils.git diff --git a/tests/string_utils_test.py b/tests/string_utils_test.py index 157de0a..5184894 100755 --- a/tests/string_utils_test.py +++ b/tests/string_utils_test.py @@ -2,10 +2,13 @@ import unittest -from ansi import fg, bg, reset +import bootstrap import string_utils as su +import unittest_utils as uu +from ansi import bg, fg, reset +@uu.check_all_methods_for_perf_regressions() class TestStringUtils(unittest.TestCase): def test_is_none_or_empty(self): self.assertTrue(su.is_none_or_empty(None)) @@ -125,7 +128,7 @@ class TestStringUtils(unittest.TestCase): s = f' {fg("red")} this is a test {bg("white")} this is a test {reset()} ' self.assertEqual( su.strip_escape_sequences(s), - ' this is a test this is a test ' + ' this is a test this is a test ', ) s = ' this is another test ' self.assertEqual(su.strip_escape_sequences(s), s) @@ -136,5 +139,51 @@ class TestStringUtils(unittest.TestCase): self.assertTrue(su.is_url("http://user:pass@127.0.0.1:81/uri/uri#shard?param=value+s")) self.assertTrue(su.is_url("ftp://127.0.0.1/uri/uri")) + def test_is_email(self): + self.assertTrue(su.is_email('scott@gasch.org')) + self.assertTrue(su.is_email('scott.gasch@gmail.com')) + self.assertFalse(su.is_email('@yahoo.com')) + self.assertFalse(su.is_email('indubidibly')) + self.assertFalse(su.is_email('frank997!!@foobar.excellent')) + + def test_suffix_string_to_number(self): + self.assertEqual(1024, su.suffix_string_to_number('1Kb')) + self.assertEqual(1024 * 1024, su.suffix_string_to_number('1Mb')) + self.assertEqual(1024, su.suffix_string_to_number('1k')) + self.assertEqual(1024, su.suffix_string_to_number('1kb')) + self.assertEqual(None, su.suffix_string_to_number('1Jl')) + self.assertEqual(None, su.suffix_string_to_number('undeniable')) + + def test_number_to_suffix_string(self): + self.assertEqual('1.0Kb', su.number_to_suffix_string(1024)) + self.assertEqual('1.0Mb', su.number_to_suffix_string(1024 * 1024)) + self.assertEqual('123', su.number_to_suffix_string(123)) + + def test_is_credit_card(self): + self.assertTrue(su.is_credit_card('4242424242424242')) + self.assertTrue(su.is_credit_card('5555555555554444')) + self.assertTrue(su.is_credit_card('378282246310005')) + self.assertTrue(su.is_credit_card('6011111111111117')) + self.assertTrue(su.is_credit_card('4000000360000006')) + self.assertFalse(su.is_credit_card('8000000360110099')) + self.assertFalse(su.is_credit_card('')) + + def test_is_camel_case(self): + self.assertFalse(su.is_camel_case('thisisatest')) + self.assertTrue(su.is_camel_case('thisIsATest')) + self.assertFalse(su.is_camel_case('this_is_a_test')) + + def test_is_snake_case(self): + self.assertFalse(su.is_snake_case('thisisatest')) + self.assertFalse(su.is_snake_case('thisIsATest')) + self.assertTrue(su.is_snake_case('this_is_a_test')) + + def test_sprintf_context(self): + with su.SprintfStdout() as buf: + print("This is a test.") + print("This is another one.") + self.assertEqual('This is a test.\nThis is another one.\n', buf()) + + if __name__ == '__main__': - unittest.main() + bootstrap.initialize(unittest.main)()