File: test_iap.py

package info (click to toggle)
odoo 18.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 878,716 kB
  • sloc: javascript: 927,937; python: 685,670; xml: 388,524; sh: 1,033; sql: 415; makefile: 26
file content (33 lines) | stat: -rw-r--r-- 1,823 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import threading
from unittest.mock import patch

import odoo.tests

@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(threading.current_thread(), 'testing', 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)