Refs #27804 -- Used subTest() in parse_accept_lang_header() test.
This commit is contained in:
parent
47016adbf5
commit
f04e6732c3
|
@ -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):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue