diff options
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/centcount_test.py | 3 | ||||
| -rwxr-xr-x | tests/dateparse_utils_test.py | 303 | ||||
| -rwxr-xr-x | tests/decorator_utils_test.py | 5 | ||||
| -rwxr-xr-x | tests/letter_compress_test.py | 3 | ||||
| -rwxr-xr-x | tests/logging_utils_test.py | 14 | ||||
| -rwxr-xr-x | tests/money_test.py | 3 | ||||
| -rwxr-xr-x | tests/profanity_filter_test.py | 5 | ||||
| -rwxr-xr-x | tests/rate_test.py | 20 | ||||
| -rwxr-xr-x | tests/string_utils_test.py | 6 |
9 files changed, 146 insertions, 216 deletions
diff --git a/tests/centcount_test.py b/tests/centcount_test.py index 3122b98..c4b3b0c 100755 --- a/tests/centcount_test.py +++ b/tests/centcount_test.py @@ -2,12 +2,11 @@ import unittest -from type.centcount import CentCount import unittest_utils as uu +from type.centcount import CentCount class TestCentCount(unittest.TestCase): - def test_basic_utility(self): amount = CentCount(1.45) another = CentCount.parse("USD 1.45") diff --git a/tests/dateparse_utils_test.py b/tests/dateparse_utils_test.py index 3b3b802..42df954 100755 --- a/tests/dateparse_utils_test.py +++ b/tests/dateparse_utils_test.py @@ -10,184 +10,135 @@ import pytz import dateparse.dateparse_utils as du import unittest_utils as uu - parsable_expressions = [ - ('today', - datetime.datetime(2021, 7, 2)), - ('tomorrow', - datetime.datetime(2021, 7, 3)), - ('yesterday', - datetime.datetime(2021, 7, 1)), - ('21:30', - datetime.datetime(2021, 7, 2, 21, 30, 0, 0)), - ('12:01am', - datetime.datetime(2021, 7, 2, 0, 1, 0, 0)), - ('12:02p', - datetime.datetime(2021, 7, 2, 12, 2, 0, 0)), - ('0:03', - datetime.datetime(2021, 7, 2, 0, 3, 0, 0)), - ('last wednesday', - datetime.datetime(2021, 6, 30)), - ('this wed', - datetime.datetime(2021, 7, 7)), - ('next wed', - datetime.datetime(2021, 7, 14)), - ('this coming tues', - datetime.datetime(2021, 7, 6)), - ('this past monday', - datetime.datetime(2021, 6, 28)), - ('4 days ago', - datetime.datetime(2021, 6, 28)), - ('4 mondays ago', - datetime.datetime(2021, 6, 7)), - ('4 months ago', - datetime.datetime(2021, 3, 2)), - ('3 days back', - datetime.datetime(2021, 6, 29)), - ('13 weeks from now', - datetime.datetime(2021, 10, 1)), - ('1 year from now', - datetime.datetime(2022, 7, 2)), - ('4 weeks from now', - datetime.datetime(2021, 7, 30)), - ('3 saturdays ago', - datetime.datetime(2021, 6, 12)), - ('4 months from today', - datetime.datetime(2021, 11, 2)), - ('4 years from yesterday', - datetime.datetime(2025, 7, 1)), - ('4 weeks from tomorrow', - datetime.datetime(2021, 7, 31)), - ('april 15, 2005', - datetime.datetime(2005, 4, 15)), - ('april 14', - datetime.datetime(2021, 4, 14)), - ('9:30am on last wednesday', - datetime.datetime(2021, 6, 30, 9, 30)), - ('2005/apr/15', - datetime.datetime(2005, 4, 15)), - ('2005 apr 15', - datetime.datetime(2005, 4, 15)), - ('the 1st wednesday in may', - datetime.datetime(2021, 5, 5)), - ('last sun of june', - datetime.datetime(2021, 6, 27)), - ('this Easter', - datetime.datetime(2021, 4, 4)), - ('last christmas', - datetime.datetime(2020, 12, 25)), - ('last Xmas', - datetime.datetime(2020, 12, 25)), - ('xmas, 1999', - datetime.datetime(1999, 12, 25)), - ('next mlk day', - datetime.datetime(2022, 1, 17)), - ('Halloween, 2020', - datetime.datetime(2020, 10, 31)), - ('5 work days after independence day', - datetime.datetime(2021, 7, 12)), - ('50 working days from last wed', - datetime.datetime(2021, 9, 10)), - ('25 working days before columbus day', - datetime.datetime(2021, 9, 3)), - ('today +1 week', - datetime.datetime(2021, 7, 9)), - ('sunday -3 weeks', - datetime.datetime(2021, 6, 13)), - ('4 weeks before xmas, 1999', - datetime.datetime(1999, 11, 27)), - ('3 days before new years eve, 2000', - datetime.datetime(2000, 12, 28)), - ('july 4th', - datetime.datetime(2021, 7, 4)), - ('the ides of march', - datetime.datetime(2021, 3, 15)), - ('the nones of april', - datetime.datetime(2021, 4, 5)), - ('the kalends of may', - datetime.datetime(2021, 5, 1)), - ('9/11/2001', - datetime.datetime(2001, 9, 11)), - ('4 sundays before veterans\' day', - datetime.datetime(2021, 10, 17)), - ('xmas eve', - datetime.datetime(2021, 12, 24)), - ('this friday at 5pm', - datetime.datetime(2021, 7, 9, 17, 0, 0)), - ('presidents day', - datetime.datetime(2021, 2, 15)), - ('memorial day, 1921', - datetime.datetime(1921, 5, 30)), - ('today -4 wednesdays', - datetime.datetime(2021, 6, 9)), - ('thanksgiving', - datetime.datetime(2021, 11, 25)), - ('2 sun in jun', - datetime.datetime(2021, 6, 13)), - ('easter -40 days', - datetime.datetime(2021, 2, 23)), - ('easter +39 days', - datetime.datetime(2021, 5, 13)), - ('1st tuesday in nov, 2024', - datetime.datetime(2024, 11, 5)), - ('2 days before last xmas at 3:14:15.92a', - datetime.datetime(2020, 12, 23, 3, 14, 15, 92)), - ('3 weeks after xmas, 1995 at midday', - datetime.datetime(1996, 1, 15, 12, 0, 0)), - ('4 months before easter, 1992 at midnight', - datetime.datetime(1991, 12, 19)), - ('5 months before halloween, 1995 at noon', - datetime.datetime(1995, 5, 31, 12)), - ('4 days before last wednesday', - datetime.datetime(2021, 6, 26)), - ('44 months after today', - datetime.datetime(2025, 3, 2)), - ('44 years before today', - datetime.datetime(1977, 7, 2)), - ('44 weeks ago', - datetime.datetime(2020, 8, 28)), - ('15 minutes to 3am', - datetime.datetime(2021, 7, 2, 2, 45)), - ('quarter past 4pm', - datetime.datetime(2021, 7, 2, 16, 15)), - ('half past 9', - datetime.datetime(2021, 7, 2, 9, 30)), - ('4 seconds to midnight', - datetime.datetime(2021, 7, 1, 23, 59, 56)), - ('4 seconds to midnight, tomorrow', - datetime.datetime(2021, 7, 2, 23, 59, 56)), - ('2021/apr/15T21:30:44.55', - datetime.datetime(2021, 4, 15, 21, 30, 44, 55)), - ('2021/apr/15 at 21:30:44.55', - datetime.datetime(2021, 4, 15, 21, 30, 44, 55)), - ('2021/4/15 at 21:30:44.55', - datetime.datetime(2021, 4, 15, 21, 30, 44, 55)), - ('2021/04/15 at 21:30:44.55', - datetime.datetime(2021, 4, 15, 21, 30, 44, 55)), - ('2021/04/15 at 21:30:44.55Z', - datetime.datetime(2021, 4, 15, 21, 30, 44, 55, - tzinfo=pytz.timezone('UTC'))), - ('2021/04/15 at 21:30:44.55EST', - datetime.datetime(2021, 4, 15, 21, 30, 44, 55, - tzinfo=pytz.timezone('EST'))), - ('13 days after last memorial day at 12 seconds before 4pm', - datetime.datetime(2020, 6, 7, 15, 59, 48)), - (' 2 days before yesterday at 9am ', - datetime.datetime(2021, 6, 29, 9)), - ('-3 days before today', - datetime.datetime(2021, 7, 5)), - ('3 days before yesterday at midnight EST', - datetime.datetime(2021, 6, 28, tzinfo=pytz.timezone('EST'))) + ('today', datetime.datetime(2021, 7, 2)), + ('tomorrow', datetime.datetime(2021, 7, 3)), + ('yesterday', datetime.datetime(2021, 7, 1)), + ('21:30', datetime.datetime(2021, 7, 2, 21, 30, 0, 0)), + ('12:01am', datetime.datetime(2021, 7, 2, 0, 1, 0, 0)), + ('12:02p', datetime.datetime(2021, 7, 2, 12, 2, 0, 0)), + ('0:03', datetime.datetime(2021, 7, 2, 0, 3, 0, 0)), + ('last wednesday', datetime.datetime(2021, 6, 30)), + ('this wed', datetime.datetime(2021, 7, 7)), + ('next wed', datetime.datetime(2021, 7, 14)), + ('this coming tues', datetime.datetime(2021, 7, 6)), + ('this past monday', datetime.datetime(2021, 6, 28)), + ('4 days ago', datetime.datetime(2021, 6, 28)), + ('4 mondays ago', datetime.datetime(2021, 6, 7)), + ('4 months ago', datetime.datetime(2021, 3, 2)), + ('3 days back', datetime.datetime(2021, 6, 29)), + ('13 weeks from now', datetime.datetime(2021, 10, 1)), + ('1 year from now', datetime.datetime(2022, 7, 2)), + ('4 weeks from now', datetime.datetime(2021, 7, 30)), + ('3 saturdays ago', datetime.datetime(2021, 6, 12)), + ('4 months from today', datetime.datetime(2021, 11, 2)), + ('4 years from yesterday', datetime.datetime(2025, 7, 1)), + ('4 weeks from tomorrow', datetime.datetime(2021, 7, 31)), + ('april 15, 2005', datetime.datetime(2005, 4, 15)), + ('april 14', datetime.datetime(2021, 4, 14)), + ('9:30am on last wednesday', datetime.datetime(2021, 6, 30, 9, 30)), + ('2005/apr/15', datetime.datetime(2005, 4, 15)), + ('2005 apr 15', datetime.datetime(2005, 4, 15)), + ('the 1st wednesday in may', datetime.datetime(2021, 5, 5)), + ('last sun of june', datetime.datetime(2021, 6, 27)), + ('this Easter', datetime.datetime(2021, 4, 4)), + ('last christmas', datetime.datetime(2020, 12, 25)), + ('last Xmas', datetime.datetime(2020, 12, 25)), + ('xmas, 1999', datetime.datetime(1999, 12, 25)), + ('next mlk day', datetime.datetime(2022, 1, 17)), + ('Halloween, 2020', datetime.datetime(2020, 10, 31)), + ('5 work days after independence day', datetime.datetime(2021, 7, 12)), + ('50 working days from last wed', datetime.datetime(2021, 9, 10)), + ('25 working days before columbus day', datetime.datetime(2021, 9, 3)), + ('today +1 week', datetime.datetime(2021, 7, 9)), + ('sunday -3 weeks', datetime.datetime(2021, 6, 13)), + ('4 weeks before xmas, 1999', datetime.datetime(1999, 11, 27)), + ('3 days before new years eve, 2000', datetime.datetime(2000, 12, 28)), + ('july 4th', datetime.datetime(2021, 7, 4)), + ('the ides of march', datetime.datetime(2021, 3, 15)), + ('the nones of april', datetime.datetime(2021, 4, 5)), + ('the kalends of may', datetime.datetime(2021, 5, 1)), + ('9/11/2001', datetime.datetime(2001, 9, 11)), + ('4 sundays before veterans\' day', datetime.datetime(2021, 10, 17)), + ('xmas eve', datetime.datetime(2021, 12, 24)), + ('this friday at 5pm', datetime.datetime(2021, 7, 9, 17, 0, 0)), + ('presidents day', datetime.datetime(2021, 2, 15)), + ('memorial day, 1921', datetime.datetime(1921, 5, 30)), + ('today -4 wednesdays', datetime.datetime(2021, 6, 9)), + ('thanksgiving', datetime.datetime(2021, 11, 25)), + ('2 sun in jun', datetime.datetime(2021, 6, 13)), + ('easter -40 days', datetime.datetime(2021, 2, 23)), + ('easter +39 days', datetime.datetime(2021, 5, 13)), + ('1st tuesday in nov, 2024', datetime.datetime(2024, 11, 5)), + ( + '2 days before last xmas at 3:14:15.92a', + datetime.datetime(2020, 12, 23, 3, 14, 15, 92), + ), + ( + '3 weeks after xmas, 1995 at midday', + datetime.datetime(1996, 1, 15, 12, 0, 0), + ), + ( + '4 months before easter, 1992 at midnight', + datetime.datetime(1991, 12, 19), + ), + ( + '5 months before halloween, 1995 at noon', + datetime.datetime(1995, 5, 31, 12), + ), + ('4 days before last wednesday', datetime.datetime(2021, 6, 26)), + ('44 months after today', datetime.datetime(2025, 3, 2)), + ('44 years before today', datetime.datetime(1977, 7, 2)), + ('44 weeks ago', datetime.datetime(2020, 8, 28)), + ('15 minutes to 3am', datetime.datetime(2021, 7, 2, 2, 45)), + ('quarter past 4pm', datetime.datetime(2021, 7, 2, 16, 15)), + ('half past 9', datetime.datetime(2021, 7, 2, 9, 30)), + ('4 seconds to midnight', datetime.datetime(2021, 7, 1, 23, 59, 56)), + ( + '4 seconds to midnight, tomorrow', + datetime.datetime(2021, 7, 2, 23, 59, 56), + ), + ('2021/apr/15T21:30:44.55', datetime.datetime(2021, 4, 15, 21, 30, 44, 55)), + ( + '2021/apr/15 at 21:30:44.55', + datetime.datetime(2021, 4, 15, 21, 30, 44, 55), + ), + ( + '2021/4/15 at 21:30:44.55', + datetime.datetime(2021, 4, 15, 21, 30, 44, 55), + ), + ( + '2021/04/15 at 21:30:44.55', + datetime.datetime(2021, 4, 15, 21, 30, 44, 55), + ), + ( + '2021/04/15 at 21:30:44.55Z', + datetime.datetime(2021, 4, 15, 21, 30, 44, 55, tzinfo=pytz.timezone('UTC')), + ), + ( + '2021/04/15 at 21:30:44.55EST', + datetime.datetime(2021, 4, 15, 21, 30, 44, 55, tzinfo=pytz.timezone('EST')), + ), + ( + '13 days after last memorial day at 12 seconds before 4pm', + datetime.datetime(2020, 6, 7, 15, 59, 48), + ), + ( + ' 2 days before yesterday at 9am ', + datetime.datetime(2021, 6, 29, 9), + ), + ('-3 days before today', datetime.datetime(2021, 7, 5)), + ( + '3 days before yesterday at midnight EST', + datetime.datetime(2021, 6, 28, tzinfo=pytz.timezone('EST')), + ), ] class TestDateparseUtils(unittest.TestCase): - @uu.check_method_for_perf_regressions def test_dateparsing(self): - dp = du.DateParser( - override_now_for_test_purposes = datetime.datetime(2021, 7, 2) - ) + dp = du.DateParser(override_now_for_test_purposes=datetime.datetime(2021, 7, 2)) for (txt, expected_dt) in parsable_expressions: try: @@ -196,28 +147,26 @@ class TestDateparseUtils(unittest.TestCase): self.assertEqual( actual_dt, expected_dt, - f'"{txt}", got "{actual_dt}" while expecting "{expected_dt}"' + f'"{txt}", got "{actual_dt}" while expecting "{expected_dt}"', ) except du.ParseException: self.fail(f'Expected "{txt}" to parse successfully.') def test_whitespace_handling(self): - dp = du.DateParser( - override_now_for_test_purposes = datetime.datetime(2021, 7, 2) - ) + dp = du.DateParser(override_now_for_test_purposes=datetime.datetime(2021, 7, 2)) for (txt, expected_dt) in parsable_expressions: try: txt = f' {txt} ' i = random.randint(2, 5) replacement = ' ' * i - txt = re.sub('\s', replacement, txt) + txt = re.sub(r'\s', replacement, txt) actual_dt = dp.parse(txt) self.assertIsNotNone(actual_dt) self.assertEqual( actual_dt, expected_dt, - f'"{txt}", got "{actual_dt}" while expecting "{expected_dt}"' + f'"{txt}", got "{actual_dt}" while expecting "{expected_dt}"', ) except du.ParseException: self.fail(f'Expected "{txt}" to parse successfully.') diff --git a/tests/decorator_utils_test.py b/tests/decorator_utils_test.py index 195dd63..2cc2b5f 100755 --- a/tests/decorator_utils_test.py +++ b/tests/decorator_utils_test.py @@ -3,16 +3,13 @@ import unittest import decorator_utils as du - import unittest_utils as uu class TestDecorators(unittest.TestCase): - def test_singleton(self): - @du.singleton - class FooBar(): + class FooBar: pass x = FooBar() diff --git a/tests/letter_compress_test.py b/tests/letter_compress_test.py index a466277..e67838a 100755 --- a/tests/letter_compress_test.py +++ b/tests/letter_compress_test.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -import random import math +import random import unittest import bootstrap @@ -10,7 +10,6 @@ import unittest_utils as uu class TestLetterCompress(unittest.TestCase): - def test_with_random_strings(self): alphabet = 'abcdefghijklmnopqrstuvwxyz .,"-' for n in range(20): diff --git a/tests/logging_utils_test.py b/tests/logging_utils_test.py index 87c00d6..a9625d6 100755 --- a/tests/logging_utils_test.py +++ b/tests/logging_utils_test.py @@ -11,7 +11,6 @@ import unittest_utils as uu class TestLoggingUtils(unittest.TestCase): - def test_output_context(self): unique_suffix = sutils.generate_uuid(True) filename = f'/tmp/logging_utils_test.{unique_suffix}' @@ -20,11 +19,11 @@ class TestLoggingUtils(unittest.TestCase): with tempfile.SpooledTemporaryFile(mode='r+') as tmpfile1: with uu.RecordStdout() as record: with lutils.OutputMultiplexerContext( - lutils.OutputMultiplexer.Destination.FILENAMES | - lutils.OutputMultiplexer.Destination.FILEHANDLES | - lutils.OutputMultiplexer.Destination.LOG_INFO, - filenames = [filename, '/dev/null'], - handles = [tmpfile1, sys.stdout], + lutils.OutputMultiplexer.Destination.FILENAMES + | lutils.OutputMultiplexer.Destination.FILEHANDLES + | lutils.OutputMultiplexer.Destination.LOG_INFO, + filenames=[filename, '/dev/null'], + handles=[tmpfile1, sys.stdout], ) as mplex: mplex.print(secret_message, end='') @@ -46,8 +45,7 @@ class TestLoggingUtils(unittest.TestCase): with uu.RecordMultipleStreams(sys.stderr, sys.stdout) as record: print("This is a test!") print("This is one too.", file=sys.stderr) - self.assertEqual(record().readlines(), - ["This is a test!\n", "This is one too.\n"]) + self.assertEqual(record().readlines(), ["This is a test!\n", "This is one too.\n"]) if __name__ == '__main__': diff --git a/tests/money_test.py b/tests/money_test.py index 57f4637..f981532 100755 --- a/tests/money_test.py +++ b/tests/money_test.py @@ -2,12 +2,11 @@ import unittest -from type.money import Money import unittest_utils as uu +from type.money import Money class TestMoney(unittest.TestCase): - def test_basic_utility(self): amount = Money(1.45) another = Money.parse("USD 1.45") diff --git a/tests/profanity_filter_test.py b/tests/profanity_filter_test.py index 5648ad3..e452d6a 100755 --- a/tests/profanity_filter_test.py +++ b/tests/profanity_filter_test.py @@ -7,13 +7,14 @@ import unittest_utils class TestProfanityFilter(unittest.TestCase): - def test_basic_functionality(self): p = pf.ProfanityFilter() self.assertTrue(p.is_bad_word('shit')) self.assertTrue(p.contains_bad_word('this is another fucking test')) self.assertTrue(p.contains_bad_word('this is another fuckin test')) - self.assertFalse(p.contains_bad_word('Mary had a little lamb whose fleese was white as snow.')) + self.assertFalse( + p.contains_bad_word('Mary had a little lamb whose fleese was white as snow.') + ) if __name__ == '__main__': diff --git a/tests/rate_test.py b/tests/rate_test.py index 621539b..e750119 100755 --- a/tests/rate_test.py +++ b/tests/rate_test.py @@ -2,34 +2,24 @@ import unittest -from type.rate import Rate -from type.money import Money - import unittest_utils as uu +from type.money import Money +from type.rate import Rate class TestRate(unittest.TestCase): def test_basic_utility(self): my_stock_returns = Rate(percent_change=-20.0) my_portfolio = 1000.0 - self.assertAlmostEqual( - 800.0, - my_stock_returns.apply_to(my_portfolio) - ) + self.assertAlmostEqual(800.0, my_stock_returns.apply_to(my_portfolio)) my_bond_returns = Rate(percentage=104.5) my_money = Money(500.0) - self.assertAlmostEqual( - Money(522.5), - my_bond_returns.apply_to(my_money) - ) + self.assertAlmostEqual(Money(522.5), my_bond_returns.apply_to(my_money)) my_multiplier = Rate(multiplier=1.72) my_nose_length = 3.2 - self.assertAlmostEqual( - 5.504, - my_multiplier.apply_to(my_nose_length) - ) + self.assertAlmostEqual(5.504, my_multiplier.apply_to(my_nose_length)) def test_conversions(self): x = Rate(104.55) diff --git a/tests/string_utils_test.py b/tests/string_utils_test.py index cc57036..5184894 100755 --- a/tests/string_utils_test.py +++ b/tests/string_utils_test.py @@ -2,16 +2,14 @@ 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)) self.assertTrue(su.is_none_or_empty("")) @@ -130,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) |
