Odoo18-Base/addons/website_blog/tests/test_sitemap.py

51 lines
1.9 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
import odoo.tests
from odoo.tests import HttpCase
@odoo.tests.common.tagged('post_install', '-at_install')
class TestSitemap(HttpCase):
def setUp(self):
super().setUp()
# Set up a website in French
self.website = self.env.ref('website.default_website')
self.lang_fr = self.env['res.lang']._activate_lang('fr_FR')
self.website.language_ids = self.env.ref('base.lang_en') + self.lang_fr
self.website.default_lang_id = self.env.ref('base.lang_en')
# Load translations for testing
self.env['ir.module.module'].search([('name', '=', 'website_blog')])._update_translations(['fr_FR'])
# Fetch the first blog post for testing
self.blog_post = self.env['blog.post'].search([], limit=1)
def test_01_sitemap_language(self):
"""Ensure sitemap is in English even when navigating to the French version of the website."""
# Navigate to the French version of the website
response = self.url_open("/fr_FR")
self.assertIn('/fr/contactus', response.text)
# Access the sitemap
response = self.url_open("/sitemap.xml")
# Ensure the sitemap content is still in English as it's the default language
if self.blog_post:
self.assertIn(self.blog_post.website_url, response.text)
def test_02_sitemap_language(self):
"""Ensure sitemap is in the default language"""
# Set the default language to French
self.website.default_lang_id = self.env['res.lang'].sudo()._activate_lang('fr_FR')
# Access the sitemap
response = self.url_open("/sitemap.xml")
# Ensure the sitemap content is in French
if self.blog_post:
translated_url = self.blog_post.with_context(lang='fr_FR').website_url
self.assertIn(translated_url, response.text)