From 29706e5d14c43bebafd4d00cbe64c9c2bbfbc61d Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Fri, 30 Jul 2021 19:50:38 +0530 Subject: [PATCH] test: Update tests as per new lang resolution --- frappe/tests/test_translate.py | 39 ++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/frappe/tests/test_translate.py b/frappe/tests/test_translate.py index edab3a82c3..605e704342 100644 --- a/frappe/tests/test_translate.py +++ b/frappe/tests/test_translate.py @@ -18,8 +18,19 @@ first_lang, second_lang, third_lang, fourth_lang, fifth_lang = choices( ) class TestTranslate(unittest.TestCase): + guest_sessions_required = [ + "test_guest_request_language_resolution_with_cookie", + "test_guest_request_language_resolution_with_request_header" + ] + + def setUp(self): + if self._testMethodName in self.guest_sessions_required: + frappe.set_user("Guest") + def tearDown(self): frappe.form_dict.pop("_lang", None) + if self._testMethodName in self.guest_sessions_required: + frappe.set_user("Administrator") def test_extract_message_from_file(self): data = frappe.translate.get_messages_from_file(translation_string_file) @@ -52,20 +63,44 @@ class TestTranslate(unittest.TestCase): Case 2: frappe.form_dict._lang is not set, but preferred_language cookie is """ + with patch.object(frappe.translate, "get_preferred_language_cookie", return_value=second_lang): + set_request(method="POST", path="/", headers=[("Accept-Language", third_lang)]) + return_val = get_language() + + self.assertNotIn(return_val, [second_lang, get_parent_language(second_lang)]) + + def test_guest_request_language_resolution_with_cookie(self): + """Test for frappe.translate.get_language + + Case 3: frappe.form_dict._lang is not set, but preferred_language cookie is [Guest User] + """ + with patch.object(frappe.translate, "get_preferred_language_cookie", return_value=second_lang): set_request(method="POST", path="/", headers=[("Accept-Language", third_lang)]) return_val = get_language() self.assertIn(return_val, [second_lang, get_parent_language(second_lang)]) + + def test_guest_request_language_resolution_with_request_header(self): + """Test for frappe.translate.get_language + + Case 4: frappe.form_dict._lang & preferred_language cookie is not set, but Accept-Language header is [Guest User] + """ + + set_request(method="POST", path="/", headers=[("Accept-Language", third_lang)]) + return_val = get_language() + self.assertIn(return_val, [third_lang, get_parent_language(third_lang)]) + def test_request_language_resolution_with_request_header(self): """Test for frappe.translate.get_language - Case 3: frappe.form_dict._lang & preferred_language cookie is not set, but Accept-Language header is + Case 5: frappe.form_dict._lang & preferred_language cookie is not set, but Accept-Language header is """ + set_request(method="POST", path="/", headers=[("Accept-Language", third_lang)]) return_val = get_language() - self.assertIn(return_val, [third_lang, get_parent_language(third_lang)]) + self.assertNotIn(return_val, [third_lang, get_parent_language(third_lang)]) expected_output = [