X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=tests%2Fstring_utils_test.py;h=c111b64f9bbb934a1fcb4ae2b8133a085ad62edd;hb=532df2c5b57c7517dfb3dddd8c1358fbadf8baf3;hp=157de0a8df9044b614e47a2b943aa79803b948c5;hpb=497fb9e21f45ec08e1486abaee6dfa7b20b8a691;p=python_utils.git diff --git a/tests/string_utils_test.py b/tests/string_utils_test.py index 157de0a..c111b64 100755 --- a/tests/string_utils_test.py +++ b/tests/string_utils_test.py @@ -1,11 +1,18 @@ #!/usr/bin/env python3 +# © Copyright 2021-2022, Scott Gasch + +"""string_utils unittest.""" + 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 +132,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 +143,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)()