mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #19142 -- Language codes can include numbers (RFC 3066).
This commit is contained in:
		| @@ -30,9 +30,10 @@ _accepted = {} | ||||
| # magic gettext number to separate context from message | ||||
| CONTEXT_SEPARATOR = "\x04" | ||||
|  | ||||
| # Format of Accept-Language header values. From RFC 2616, section 14.4 and 3.9. | ||||
| # Format of Accept-Language header values. From RFC 2616, section 14.4 and 3.9 | ||||
| # and RFC 3066, section 2.1 | ||||
| accept_language_re = re.compile(r''' | ||||
|         ([A-Za-z]{1,8}(?:-[A-Za-z]{1,8})*|\*)         # "en", "en-au", "x-y-z", "*" | ||||
|         ([A-Za-z]{1,8}(?:-[A-Za-z0-9]{1,8})*|\*)      # "en", "en-au", "x-y-z", "es-419", "*" | ||||
|         (?:\s*;\s*q=(0(?:\.\d{,3})?|1(?:.0{,3})?))?   # Optional "q=1.00", "q=0.8" | ||||
|         (?:\s*,\s*|$)                                 # Multiple accepts per header. | ||||
|         ''', re.VERBOSE) | ||||
|   | ||||
| @@ -715,6 +715,7 @@ class MiscTests(TestCase): | ||||
|         # 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')) | ||||
| @@ -739,6 +740,7 @@ class MiscTests(TestCase): | ||||
|         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('')) | ||||
|  | ||||
|     def test_parse_literal_http_header(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user