Merge pull request #42183 from SMIL-Infra/fix-ac-lang

mgr/dashboard: fix Accept-Language header parsing
This commit is contained in:
Alfonso Martínez 2021-07-07 11:15:58 +02:00 committed by GitHub
commit ffdd2bbbb6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View File

@ -58,7 +58,7 @@ class LanguageMixin(object):
class HomeController(BaseController, LanguageMixin):
LANG_TAG_SEQ_RE = re.compile(r'\s*([^,]+)\s*,?\s*')
LANG_TAG_RE = re.compile(
r'^(?P<locale>[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})?)(;q=(?P<weight>[01]\.\d{0,3}))?$')
r'^(?P<locale>[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*|\*)(;q=(?P<weight>[01]\.\d{0,3}))?$')
MAX_ACCEPTED_LANGS = 10
@lru_cache()

View File

@ -64,3 +64,10 @@ class HomeTest(ControllerTestCase, FakeFsMixin):
self.assertStatus(200)
logger.info(self.body)
self.assertIn('<html lang="en">', self.body.decode('utf-8'))
@mock.patch(FakeFsMixin.builtins_open, new=FakeFsMixin.f_open)
@mock.patch('os.stat', new=FakeFsMixin.f_os.stat)
@mock.patch('os.listdir', new=FakeFsMixin.f_os.listdir)
def test_home_multiple_subtags_lang(self):
self._get('/', headers=[('Accept-Language', 'zh-Hans-CN')])
self.assertStatus(200)