Includes: - Odoo 19 framework (odoo/) - 27 custom EnCoach addons (new_project/custom_addons/) - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media - encoach_courseware, encoach_communication, encoach_subscription - encoach_notification, encoach_approval, encoach_branding - encoach_classroom, encoach_registration, encoach_stats - encoach_faq, encoach_ticket, encoach_training, encoach_resources - encoach_adaptive_ai, encoach_sis - 21 OpenEduCat Enterprise modules (new_project/enterprise-19/) - 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/) - Configuration: odoo.conf, requirements.txt, scripts - 200+ REST API endpoints with JWT authentication - SRS and test documentation Made-with: Cursor
35 lines
1.8 KiB
Python
35 lines
1.8 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from unittest.mock import patch
|
|
|
|
import odoo.tests
|
|
from odoo import modules
|
|
|
|
|
|
@odoo.tests.tagged('website_nightly', '-standard')
|
|
class TestIap(odoo.tests.HttpCase):
|
|
|
|
def test_01_industries_lang(self):
|
|
"""Ensure that the industries are translated in all the languages
|
|
supported by the configurator."""
|
|
def _get_industries(lang):
|
|
# Calls to IAP are disabled during testing, we need to remove the testing flag to let it perform the calls
|
|
with patch.object(modules.module, 'current_test', False):
|
|
industries = self.env['website']._website_api_rpc('/api/website/1/configurator/industries', {'lang': lang})['industries']
|
|
return {industry['id']: industry['label'] for industry in industries}
|
|
|
|
english_terms = _get_industries('en')
|
|
# Check that every languages are different from english.
|
|
for lang in ['ar', 'de', 'es', 'fr', 'hr', 'hu', 'id', 'it', 'mk', 'nl', 'pt', 'ru', 'zh']:
|
|
translated_terms = _get_industries(lang)
|
|
has_diff = False
|
|
self.assertEqual(len(english_terms), len(translated_terms), "Different number of industries between 'en' and %s" % lang)
|
|
for industry_id, english_label in english_terms.items():
|
|
translated_label = translated_terms.get(industry_id, False)
|
|
self.assertTrue(translated_label, "Industry %s is not in %s" % (english_label, lang))
|
|
if english_label != translated_label:
|
|
# One difference is enough to consider the translation
|
|
# as valid.
|
|
has_diff = True
|
|
break
|
|
self.assertTrue(has_diff, "No difference found between 'en' and %s" % lang)
|