fix(lang): patch FAB's LocaleView to redirect to previous page (#31692)

This commit is contained in:
Jillian
2025-04-16 02:16:06 +09:30
committed by GitHub
parent 342e6f3ab0
commit 93fa39a14f
3 changed files with 77 additions and 2 deletions

View File

@@ -872,5 +872,56 @@ class TestCore(SupersetTestCase):
assert resp.status_code == 302
class TestLocalePatch(SupersetTestCase):
MOCK_LANGUAGES = (
"superset.views.filters.current_app.config",
{
"LANGUAGES": {
"es": {"flag": "es", "name": "Español"},
},
},
)
@mock.patch.dict(*MOCK_LANGUAGES)
def test_lang_redirect(self):
self.login(GAMMA_USERNAME)
referer_url = "http://localhost/explore/"
resp = self.client.get("/lang/es", headers={"Referer": referer_url})
assert resp.status_code == 302
assert resp.headers["Location"] == referer_url
with self.client.session_transaction() as session:
assert session["locale"] == "es"
@mock.patch.dict(*MOCK_LANGUAGES)
def test_lang_invalid_referer(self):
self.login(GAMMA_USERNAME)
referer_url = "http://someotherserver/explore/"
resp = self.client.get("/lang/es", headers={"Referer": referer_url})
assert resp.status_code == 302
assert resp.headers["Location"] == "/"
with self.client.session_transaction() as session:
assert session["locale"] == "es"
@mock.patch.dict(*MOCK_LANGUAGES)
def test_lang_no_referer(self):
self.login(GAMMA_USERNAME)
resp = self.client.get("/lang/es")
assert resp.status_code == 302
assert resp.headers["Location"] == "/"
with self.client.session_transaction() as session:
assert session["locale"] == "es"
def test_lang_invalid_locale(self):
self.login(GAMMA_USERNAME)
resp = self.client.get("/lang/es")
assert resp.status_code == 500
with self.client.session_transaction() as session:
assert session["locale"] == "en"
if __name__ == "__main__":
unittest.main()