diff --git a/mandelstudio/templatetags/mandelstudio_i18n.py b/mandelstudio/templatetags/mandelstudio_i18n.py index dabfd29..17e44f2 100644 --- a/mandelstudio/templatetags/mandelstudio_i18n.py +++ b/mandelstudio/templatetags/mandelstudio_i18n.py @@ -41,7 +41,9 @@ def language_neutral_path(value: str | None) -> str: language_codes = [code for code, _ in settings.LANGUAGES] if language_codes: # Strip the first language segment, e.g. /en/manage -> /manage. - pattern = rf"^/(?:{'|'.join(re.escape(code) for code in language_codes)})(?=/|$)" + pattern = ( + rf"^/(?:{'|'.join(re.escape(code) for code in language_codes)})(?=/|$)" + ) path = re.sub(pattern, "", path, count=1) or "/" return urlunsplit(("", "", path, parsed.query, "")) diff --git a/mandelstudio/tests/test_mandelstudio_i18n_templatetags.py b/mandelstudio/tests/test_mandelstudio_i18n_templatetags.py index f430489..384c0eb 100644 --- a/mandelstudio/tests/test_mandelstudio_i18n_templatetags.py +++ b/mandelstudio/tests/test_mandelstudio_i18n_templatetags.py @@ -18,14 +18,22 @@ from mandelstudio.templatetags.mandelstudio_i18n import language_neutral_path class LanguageNeutralPathFilterTests(SimpleTestCase): def test_strips_language_prefix(self): self.assertEqual(language_neutral_path("/en/manage/"), "/manage/") - self.assertEqual(language_neutral_path("/fr/manage/checkout/paymentmethod/"), "/manage/checkout/paymentmethod/") + self.assertEqual( + language_neutral_path("/fr/manage/checkout/paymentmethod/"), + "/manage/checkout/paymentmethod/", + ) def test_keeps_unprefixed_path(self): self.assertEqual(language_neutral_path("/manage/"), "/manage/") - self.assertEqual(language_neutral_path("/manage/checkout/paymentmethod/"), "/manage/checkout/paymentmethod/") + self.assertEqual( + language_neutral_path("/manage/checkout/paymentmethod/"), + "/manage/checkout/paymentmethod/", + ) def test_preserves_query_string(self): self.assertEqual( - language_neutral_path("/de/manage/?next=/de/manage/checkout/paymentmethod/"), + language_neutral_path( + "/de/manage/?next=/de/manage/checkout/paymentmethod/" + ), "/manage/?next=/de/manage/checkout/paymentmethod/", )