Skip to content

Commit 2f09918

Browse files
18.0 mig website menu url translate (#215)
* [18.0][MIG] Migrated module website_menu_url_translate from v15 to v18 * [ADD/IMP] Implemented the translation controller and Added the test data file and test .py file * Update author and website fields in manifest * [IMP/REM] Implemented the test py file and Remove test data xml file * [IMP] Implemented the formarting to pass the CI tests * [IMP] Implemented the formarting to pass the CI tests * [IMP] Implemented the readme file * fix README --------- Co-authored-by: jans23 <[email protected]> Co-authored-by: Jan Suhr <[email protected]>
1 parent 9ecda85 commit 2f09918

File tree

3 files changed

+36
-57
lines changed

3 files changed

+36
-57
lines changed

website_menu_url_translate/__manifest__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
"data": [
1111
"data/res_lang.xml",
1212
"views/website_page.xml",
13-
"data/test_website_menu_url_data.xml",
1413
],
1514
"installable": True,
1615
"application": False,

website_menu_url_translate/data/test_website_menu_url_data.xml

Lines changed: 0 additions & 43 deletions
This file was deleted.
Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
import logging
2+
13
from odoo.tests.common import HttpCase, tagged
24

5+
_logger = logging.getLogger(__name__)
6+
37

48
@tagged("post_install", "-at_install")
59
class TestWebsiteLangRedirect(HttpCase):
@@ -8,27 +12,46 @@ class TestWebsiteLangRedirect(HttpCase):
812
def setUp(self):
913
super().setUp()
1014
self.website = self.env["website"].get_current_website()
11-
self.page_en = self.env.ref("website_menu_url_translate.test_contact_page_en")
12-
self.page_de = self.env.ref("website_menu_url_translate.test_contact_page_de")
13-
self.assertTrue(self.page_en.exists(), "English test page missing")
14-
self.assertTrue(self.page_de.exists(), "German test page missing")
15+
# Minimal QWeb view
16+
self.view_contact = self.env["ir.ui.view"].create(
17+
{
18+
"name": "test_contactus_view",
19+
"type": "qweb",
20+
"arch_db": "<t t-name='test.contactus'>Contact Us Test Page</t>",
21+
}
22+
)
23+
# Website page
24+
self.page_en = self.env["website.page"].create(
25+
{
26+
"name": "Contact Us",
27+
"url": "/test/contactus",
28+
"view_id": self.view_contact.id,
29+
"website_id": self.website.id,
30+
"is_published": True,
31+
}
32+
)
33+
# Translations
34+
self.page_en.with_context(lang="en_US").url = "/test/contactus"
35+
self.page_en.with_context(lang="de_DE").url = "/test/kontakt"
1536

1637
def test_01_change_lang_redirect(self):
17-
"""Switch from English to German; expect redirect to /de/test/kontakt."""
38+
"""Test redirect to German version when language = de_DE."""
1839
resp = self.url_open(
1940
"/website/lang/de_DE?r=/test/contactus", allow_redirects=False
2041
)
2142
self.assertIn(resp.status_code, (303, 200))
43+
redirect_url = resp.headers.get("Location")
44+
_logger.info(
45+
"[DE] Status: %s | Redirected to: %s", resp.status_code, redirect_url
46+
)
2247

2348
def test_02_default_language_redirect(self):
24-
"""Switch back to English; expect redirect to /test/contactus."""
49+
"""Test /website/lang redirection works cleanly."""
2550
resp = self.url_open(
26-
"/website/lang/en_US?r=/test/kontakt", allow_redirects=False
51+
"/website/lang/en_US?r=/test/contactus", allow_redirects=False
2752
)
2853
self.assertIn(resp.status_code, (303, 200))
29-
30-
def test_03_fallback_no_translation(self):
31-
"""If no translation exists, fallback to direct
32-
url without languange /test/contactus."""
33-
resp = self.url_open("/test/contactus", allow_redirects=False)
34-
self.assertIn(resp.status_code, (303, 200))
54+
redirect_url = resp.headers.get("Location")
55+
_logger.info(
56+
"[EN] Status: %s | Redirected to: %s", resp.status_code, redirect_url
57+
)

0 commit comments

Comments
 (0)