From e065b293878b1e3ea56655aa9d33e87576cd77ff Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sun, 9 Jun 2019 16:07:19 -0700 Subject: [PATCH] Refs #27804 -- Used subTest() in filesizeformat tests and HumanizeTests. --- tests/humanize_tests/tests.py | 19 +++-- .../filter_tests/test_filesizeformat.py | 75 +++++++++++-------- 2 files changed, 57 insertions(+), 37 deletions(-) diff --git a/tests/humanize_tests/tests.py b/tests/humanize_tests/tests.py index 16e8fa6bfd..7396c417ab 100644 --- a/tests/humanize_tests/tests.py +++ b/tests/humanize_tests/tests.py @@ -31,10 +31,14 @@ class HumanizeTests(SimpleTestCase): def humanize_tester(self, test_list, result_list, method, normalize_result_func=escape): for test_content, result in zip(test_list, result_list): - t = Template('{%% load humanize %%}{{ test_content|%s }}' % method) - rendered = t.render(Context(locals())).strip() - self.assertEqual(rendered, normalize_result_func(result), - msg="%s test failed, produced '%s', should've produced '%s'" % (method, rendered, result)) + with self.subTest(test_content): + t = Template('{%% load humanize %%}{{ test_content|%s }}' % method) + rendered = t.render(Context(locals())).strip() + self.assertEqual( + rendered, + normalize_result_func(result), + msg="%s test failed, produced '%s', should've produced '%s'" % (method, rendered, result) + ) def test_ordinal(self): test_list = ('1', '2', '3', '4', '11', '12', @@ -289,9 +293,10 @@ class HumanizeTests(SimpleTestCase): humanize.datetime = DocumentedMockDateTime try: for test_time_string, expected_natural_time in test_data: - test_time = datetime.datetime.strptime(test_time_string, time_format) - natural_time = humanize.naturaltime(test_time).replace('\xa0', ' ') - self.assertEqual(expected_natural_time, natural_time) + with self.subTest(test_time_string): + test_time = datetime.datetime.strptime(test_time_string, time_format) + natural_time = humanize.naturaltime(test_time).replace('\xa0', ' ') + self.assertEqual(expected_natural_time, natural_time) finally: humanize.datetime = orig_humanize_datetime diff --git a/tests/template_tests/filter_tests/test_filesizeformat.py b/tests/template_tests/filter_tests/test_filesizeformat.py index 2e425af8ac..2d2aa6743c 100644 --- a/tests/template_tests/filter_tests/test_filesizeformat.py +++ b/tests/template_tests/filter_tests/test_filesizeformat.py @@ -6,38 +6,53 @@ from django.utils import translation class FunctionTests(SimpleTestCase): def test_formats(self): - self.assertEqual(filesizeformat(1023), '1023\xa0bytes') - self.assertEqual(filesizeformat(1024), '1.0\xa0KB') - self.assertEqual(filesizeformat(10 * 1024), '10.0\xa0KB') - self.assertEqual(filesizeformat(1024 * 1024 - 1), '1024.0\xa0KB') - self.assertEqual(filesizeformat(1024 * 1024), '1.0\xa0MB') - self.assertEqual(filesizeformat(1024 * 1024 * 50), '50.0\xa0MB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024 - 1), '1024.0\xa0MB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024), '1.0\xa0GB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024), '1.0\xa0TB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024), '1.0\xa0PB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024 * 2000), '2000.0\xa0PB') - self.assertEqual(filesizeformat(complex(1, -1)), '0\xa0bytes') - self.assertEqual(filesizeformat(""), '0\xa0bytes') - self.assertEqual(filesizeformat("\N{GREEK SMALL LETTER ALPHA}"), '0\xa0bytes') + tests = [ + (1023, '1023\xa0bytes'), + (1024, '1.0\xa0KB'), + (10 * 1024, '10.0\xa0KB'), + (1024 * 1024 - 1, '1024.0\xa0KB'), + (1024 * 1024, '1.0\xa0MB'), + (1024 * 1024 * 50, '50.0\xa0MB'), + (1024 * 1024 * 1024 - 1, '1024.0\xa0MB'), + (1024 * 1024 * 1024, '1.0\xa0GB'), + (1024 * 1024 * 1024 * 1024, '1.0\xa0TB'), + (1024 * 1024 * 1024 * 1024 * 1024, '1.0\xa0PB'), + (1024 * 1024 * 1024 * 1024 * 1024 * 2000, '2000.0\xa0PB'), + (complex(1, -1), '0\xa0bytes'), + ('', '0\xa0bytes'), + ('\N{GREEK SMALL LETTER ALPHA}', '0\xa0bytes'), + ] + for value, expected in tests: + with self.subTest(value=value): + self.assertEqual(filesizeformat(value), expected) def test_localized_formats(self): + tests = [ + (1023, '1023\xa0Bytes'), + (1024, '1,0\xa0KB'), + (10 * 1024, '10,0\xa0KB'), + (1024 * 1024 - 1, '1024,0\xa0KB'), + (1024 * 1024, '1,0\xa0MB'), + (1024 * 1024 * 50, '50,0\xa0MB'), + (1024 * 1024 * 1024 - 1, '1024,0\xa0MB'), + (1024 * 1024 * 1024, '1,0\xa0GB'), + (1024 * 1024 * 1024 * 1024, '1,0\xa0TB'), + (1024 * 1024 * 1024 * 1024 * 1024, '1,0\xa0PB'), + (1024 * 1024 * 1024 * 1024 * 1024 * 2000, '2000,0\xa0PB'), + (complex(1, -1), '0\xa0Bytes'), + ('', '0\xa0Bytes'), + ('\N{GREEK SMALL LETTER ALPHA}', '0\xa0Bytes'), + ] with self.settings(USE_L10N=True), translation.override('de'): - self.assertEqual(filesizeformat(1023), '1023\xa0Bytes') - self.assertEqual(filesizeformat(1024), '1,0\xa0KB') - self.assertEqual(filesizeformat(10 * 1024), '10,0\xa0KB') - self.assertEqual(filesizeformat(1024 * 1024 - 1), '1024,0\xa0KB') - self.assertEqual(filesizeformat(1024 * 1024), '1,0\xa0MB') - self.assertEqual(filesizeformat(1024 * 1024 * 50), '50,0\xa0MB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024 - 1), '1024,0\xa0MB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024), '1,0\xa0GB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024), '1,0\xa0TB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024), '1,0\xa0PB') - self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024 * 2000), '2000,0\xa0PB') - self.assertEqual(filesizeformat(complex(1, -1)), '0\xa0Bytes') - self.assertEqual(filesizeformat(""), '0\xa0Bytes') - self.assertEqual(filesizeformat("\N{GREEK SMALL LETTER ALPHA}"), '0\xa0Bytes') + for value, expected in tests: + with self.subTest(value=value): + self.assertEqual(filesizeformat(value), expected) def test_negative_numbers(self): - self.assertEqual(filesizeformat(-100), '-100\xa0bytes') - self.assertEqual(filesizeformat(-1024 * 1024 * 50), '-50.0\xa0MB') + tests = [ + (-100, '-100\xa0bytes'), + (-1024 * 1024 * 50, '-50.0\xa0MB'), + ] + for value, expected in tests: + with self.subTest(value=value): + self.assertEqual(filesizeformat(value), expected)