Optionally surface exceptions that happen under executors by reading
[python_utils.git] / tests / string_utils_test.py
index 157de0a8df9044b614e47a2b943aa79803b948c5..cc570364047382c3d0e2aee570674cc37e87c710 100755 (executable)
@@ -3,10 +3,15 @@
 import unittest
 
 from ansi import fg, bg, reset
+import bootstrap
 import string_utils as su
 
+import unittest_utils as uu
 
+
[email protected]_all_methods_for_perf_regressions()
 class TestStringUtils(unittest.TestCase):
+
     def test_is_none_or_empty(self):
         self.assertTrue(su.is_none_or_empty(None))
         self.assertTrue(su.is_none_or_empty(""))
@@ -136,5 +141,51 @@ class TestStringUtils(unittest.TestCase):
         self.assertTrue(su.is_url("http://user:[email protected]: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('[email protected]'))
+        self.assertTrue(su.is_email('[email protected]'))
+        self.assertFalse(su.is_email('@yahoo.com'))
+        self.assertFalse(su.is_email('indubidibly'))
+        self.assertFalse(su.is_email('[email protected]'))
+
+    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)()