Browse Source

Refs #27804 -- Used subTest() in filesizeformat tests and HumanizeTests.

Jon Dufresne 5 years ago
parent
commit
e065b29387

+ 12 - 7
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
 

+ 45 - 30
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)