summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom <tom@tomforb.es>2017-09-27 21:31:03 +0100
committerTim Graham <timograham@gmail.com>2017-10-02 14:04:52 -0400
commitf04e6732c33e0fd67e82ab2d59f230fa0045d15b (patch)
tree5198e459c5aaab34b4c0332eaf1b7d0744fa6dfc
parent47016adbf54b54143d4cf052eeb29fc72d27e6b1 (diff)
Refs #27804 -- Used subTest() in parse_accept_lang_header() test.
-rw-r--r--tests/i18n/tests.py75
1 files changed, 36 insertions, 39 deletions
diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py
index 2cbf18f573..57adaae6a9 100644
--- a/tests/i18n/tests.py
+++ b/tests/i18n/tests.py
@@ -1098,45 +1098,42 @@ class MiscTests(SimpleTestCase):
values according to the spec (and that we extract all the pieces in
the right order).
"""
- p = trans_real.parse_accept_lang_header
- # Good headers.
- self.assertEqual([('de', 1.0)], p('de'))
- self.assertEqual([('en-au', 1.0)], p('en-AU'))
- self.assertEqual([('es-419', 1.0)], p('es-419'))
- self.assertEqual([('*', 1.0)], p('*;q=1.00'))
- self.assertEqual([('en-au', 0.123)], p('en-AU;q=0.123'))
- self.assertEqual([('en-au', 0.5)], p('en-au;q=0.5'))
- self.assertEqual([('en-au', 1.0)], p('en-au;q=1.0'))
- self.assertEqual([('da', 1.0), ('en', 0.5), ('en-gb', 0.25)], p('da, en-gb;q=0.25, en;q=0.5'))
- self.assertEqual([('en-au-xx', 1.0)], p('en-au-xx'))
- self.assertEqual(
- [('de', 1.0), ('en-au', 0.75), ('en-us', 0.5), ('en', 0.25), ('es', 0.125), ('fa', 0.125)],
- p('de,en-au;q=0.75,en-us;q=0.5,en;q=0.25,es;q=0.125,fa;q=0.125')
- )
- self.assertEqual([('*', 1.0)], p('*'))
- self.assertEqual([('de', 0.0)], p('de;q=0.'))
- self.assertEqual([('en', 1.0), ('*', 0.5)], p('en; q=1.0, * ; q=0.5'))
- self.assertEqual([('en', 1.0)], p('en; q=1,'))
- self.assertEqual([], p(''))
-
- # Bad headers; should always return [].
- self.assertEqual([], p('en-gb;q=1.0000'))
- self.assertEqual([], p('en;q=0.1234'))
- self.assertEqual([], p('en;q=.2'))
- self.assertEqual([], p('abcdefghi-au'))
- self.assertEqual([], p('**'))
- self.assertEqual([], p('en,,gb'))
- self.assertEqual([], p('en-au;q=0.1.0'))
- self.assertEqual(
- [],
- p('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXZ,en')
- )
- self.assertEqual([], p('da, en-gb;q=0.8, en;q=0.7,#'))
- self.assertEqual([], p('de;q=2.0'))
- self.assertEqual([], p('de;q=0.a'))
- self.assertEqual([], p('12-345'))
- self.assertEqual([], p(''))
- self.assertEqual([], p('en;q=1e0'))
+ tests = [
+ # Good headers
+ ('de', [('de', 1.0)]),
+ ('en-AU', [('en-au', 1.0)]),
+ ('es-419', [('es-419', 1.0)]),
+ ('*;q=1.00', [('*', 1.0)]),
+ ('en-AU;q=0.123', [('en-au', 0.123)]),
+ ('en-au;q=0.5', [('en-au', 0.5)]),
+ ('en-au;q=1.0', [('en-au', 1.0)]),
+ ('da, en-gb;q=0.25, en;q=0.5', [('da', 1.0), ('en', 0.5), ('en-gb', 0.25)]),
+ ('en-au-xx', [('en-au-xx', 1.0)]),
+ ('de,en-au;q=0.75,en-us;q=0.5,en;q=0.25,es;q=0.125,fa;q=0.125',
+ [('de', 1.0), ('en-au', 0.75), ('en-us', 0.5), ('en', 0.25), ('es', 0.125), ('fa', 0.125)]),
+ ('*', [('*', 1.0)]),
+ ('de;q=0.', [('de', 0.0)]),
+ ('en; q=1,', [('en', 1.0)]),
+ ('en; q=1.0, * ; q=0.5', [('en', 1.0), ('*', 0.5)]),
+ # Bad headers
+ ('en-gb;q=1.0000', []),
+ ('en;q=0.1234', [], ),
+ ('en;q=.2', []),
+ ('abcdefghi-au', []),
+ ('**', []),
+ ('en,,gb', []),
+ ('en-au;q=0.1.0', []),
+ (('X' * 97) + 'Z,en', []),
+ ('da, en-gb;q=0.8, en;q=0.7,#', []),
+ ('de;q=2.0', []),
+ ('de;q=0.a', []),
+ ('12-345', []),
+ ('', []),
+ ('en;q=1e0', []),
+ ]
+ for value, expected in tests:
+ with self.subTest(value=value):
+ self.assertEqual(trans_real.parse_accept_lang_header(value), expected)
def test_parse_literal_http_header(self):
"""