From 497fb9e21f45ec08e1486abaee6dfa7b20b8a691 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Wed, 24 Mar 2021 18:08:54 -0700 Subject: Initial revision --- tests/string_utils_test.py | 140 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100755 tests/string_utils_test.py (limited to 'tests') diff --git a/tests/string_utils_test.py b/tests/string_utils_test.py new file mode 100755 index 0000000..157de0a --- /dev/null +++ b/tests/string_utils_test.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 + +import unittest + +from ansi import fg, bg, reset +import string_utils as su + + +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("")) + self.assertTrue(su.is_none_or_empty("\n")) + self.assertTrue(su.is_none_or_empty(' ')) + self.assertTrue(su.is_none_or_empty(' \n \r \t ')) + self.assertFalse(su.is_none_or_empty("Covfefe")) + self.assertFalse(su.is_none_or_empty("1234")) + + def test_is_string(self): + self.assertTrue(su.is_string("test")) + self.assertTrue(su.is_string("")) + self.assertFalse(su.is_string(bytes(0x1234))) + self.assertFalse(su.is_string(1234)) + + def test_is_empty_string(self): + self.assertTrue(su.is_empty_string('')) + self.assertTrue(su.is_empty_string(' \t\t \n \r ')) + self.assertFalse(su.is_empty_string(' this is a test ')) + self.assertFalse(su.is_empty_string(22)) + + def test_is_full_string(self): + self.assertFalse(su.is_full_string('')) + self.assertFalse(su.is_full_string(' \t\t \n \r ')) + self.assertTrue(su.is_full_string(' this is a test ')) + self.assertFalse(su.is_full_string(22)) + + def test_is_number(self): + self.assertTrue(su.is_number("1234")) + self.assertTrue(su.is_number("-1234")) + self.assertTrue(su.is_number("1234.55")) + self.assertTrue(su.is_number("-1234.55")) + self.assertTrue(su.is_number("+1234")) + self.assertTrue(su.is_number("+1234.55")) + self.assertTrue(su.is_number("-0.8485996602e10")) + self.assertTrue(su.is_number("-0.8485996602E10")) + self.assertFalse(su.is_number("-0.8485996602t10")) + self.assertFalse(su.is_number(" 1234 ")) + self.assertFalse(su.is_number(" 1234")) + self.assertFalse(su.is_number("1234 ")) + self.assertFalse(su.is_number("fifty")) + + def test_is_integer_number(self): + self.assertTrue(su.is_integer_number("1234")) + self.assertTrue(su.is_integer_number("-1234")) + self.assertFalse(su.is_integer_number("1234.55")) + self.assertFalse(su.is_integer_number("-1234.55")) + self.assertTrue(su.is_integer_number("+1234")) + self.assertTrue(su.is_integer_number("0x1234")) + self.assertTrue(su.is_integer_number("0xdeadbeef")) + self.assertFalse(su.is_integer_number("+1234.55")) + self.assertTrue(su.is_octal_integer_number("+0o777")) + self.assertFalse(su.is_integer_number("-0.8485996602e10")) + self.assertFalse(su.is_integer_number("-0.8485996602E10")) + self.assertFalse(su.is_integer_number("-0.8485996602t10")) + self.assertFalse(su.is_integer_number(" 1234 ")) + self.assertFalse(su.is_integer_number(" 1234")) + self.assertFalse(su.is_integer_number("1234 ")) + self.assertFalse(su.is_integer_number("fifty")) + + def test_is_hexidecimal_integer_number(self): + self.assertTrue(su.is_hexidecimal_integer_number("0x1234")) + self.assertTrue(su.is_hexidecimal_integer_number("0X1234")) + self.assertTrue(su.is_hexidecimal_integer_number("0x1234D")) + self.assertTrue(su.is_hexidecimal_integer_number("0xF1234")) + self.assertTrue(su.is_hexidecimal_integer_number("0xe1234")) + self.assertTrue(su.is_hexidecimal_integer_number("0x1234a")) + self.assertTrue(su.is_hexidecimal_integer_number("0xdeadbeef")) + self.assertTrue(su.is_hexidecimal_integer_number("-0xdeadbeef")) + self.assertTrue(su.is_hexidecimal_integer_number("+0xdeadbeef")) + self.assertFalse(su.is_hexidecimal_integer_number("0xH1234")) + self.assertFalse(su.is_hexidecimal_integer_number("0x1234H")) + self.assertFalse(su.is_hexidecimal_integer_number("nine")) + + def test_is_octal_integer_number(self): + self.assertTrue(su.is_octal_integer_number("0o111")) + self.assertTrue(su.is_octal_integer_number("0O111")) + self.assertTrue(su.is_octal_integer_number("-0o111")) + self.assertTrue(su.is_octal_integer_number("+0o777")) + self.assertFalse(su.is_octal_integer_number("-+0o111")) + self.assertFalse(su.is_octal_integer_number("0o181")) + self.assertFalse(su.is_octal_integer_number("0o1a1")) + self.assertFalse(su.is_octal_integer_number("one")) + + def test_is_binary_integer_number(self): + self.assertTrue(su.is_binary_integer_number("0b10100101110")) + self.assertTrue(su.is_binary_integer_number("+0b10100101110")) + self.assertTrue(su.is_binary_integer_number("-0b10100101110")) + self.assertTrue(su.is_binary_integer_number("0B10100101110")) + self.assertTrue(su.is_binary_integer_number("+0B10100101110")) + self.assertTrue(su.is_binary_integer_number("-0B10100101110")) + self.assertFalse(su.is_binary_integer_number("-0B10100101110 ")) + self.assertFalse(su.is_binary_integer_number(" -0B10100101110")) + self.assertFalse(su.is_binary_integer_number("-0B10100 101110")) + self.assertFalse(su.is_binary_integer_number("0b10100201110")) + self.assertFalse(su.is_binary_integer_number("0b10100101e110")) + self.assertFalse(su.is_binary_integer_number("fred")) + + def test_to_int(self): + self.assertEqual(su.to_int("1234"), 1234) + self.assertEqual(su.to_int("0x1234"), 4660) + self.assertEqual(su.to_int("0o777"), 511) + self.assertEqual(su.to_int("0b111"), 7) + + def test_is_decimal_number(self): + self.assertTrue(su.is_decimal_number('4.3')) + self.assertTrue(su.is_decimal_number('.3')) + self.assertTrue(su.is_decimal_number('0.3')) + self.assertFalse(su.is_decimal_number('3.')) + self.assertTrue(su.is_decimal_number('3.0')) + self.assertTrue(su.is_decimal_number('3.0492949249e20')) + self.assertFalse(su.is_decimal_number('3')) + self.assertFalse(su.is_decimal_number('0x11')) + + def test_strip_escape_sequences(self): + 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 ' + ) + s = ' this is another test ' + self.assertEqual(su.strip_escape_sequences(s), s) + + def test_is_url(self): + self.assertTrue(su.is_url("http://host.domain/uri/uri#shard?param=value+s")) + self.assertTrue(su.is_url("http://127.0.0.1/uri/uri#shard?param=value+s")) + 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")) + +if __name__ == '__main__': + unittest.main() -- cgit v1.3