tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_l10n_locales.py (3559B)


      1 import os
      2 import shutil
      3 import unittest
      4 from unittest import mock
      5 
      6 import mozunit
      7 from mozharness.base import script
      8 from mozharness.mozilla.l10n import locales
      9 
     10 ALL_LOCALES = ["ar", "be", "de", "es-ES"]
     11 
     12 MH_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
     13 
     14 
     15 def cleanup():
     16    if os.path.exists("test_logs"):
     17        shutil.rmtree("test_logs", ignore_errors=True)
     18 
     19 
     20 class LocalesTest(locales.LocalesMixin, script.BaseScript):
     21    def __init__(self, **kwargs):
     22        if "config" not in kwargs:
     23            kwargs["config"] = {"log_type": "simple", "log_level": "error"}
     24        if "initial_config_file" not in kwargs:
     25            kwargs["initial_config_file"] = "test/test.json"
     26        super().__init__(**kwargs)
     27        self.config = {}
     28        self.log_obj = None
     29 
     30 
     31 @mock.patch.dict("os.environ", GECKO_PATH="gecko_src")
     32 class TestLocalesMixin(unittest.TestCase):
     33    BASE_ABS_DIRS = {
     34        "abs_log_dir",
     35        "abs_work_dir",
     36        "base_work_dir",
     37        "abs_src_dir",
     38        "abs_locales_src_dir",
     39        "abs_l10n_dir",
     40        "abs_obj_dir",
     41        "abs_locales_dir",
     42    }
     43 
     44    def setUp(self):
     45        cleanup()
     46 
     47    def tearDown(self):
     48        cleanup()
     49 
     50    def test_query_locales_locales(self):
     51        l = LocalesTest()
     52        l.locales = ["a", "b", "c"]
     53        self.assertEqual(l.locales, l.query_locales())
     54 
     55    def test_query_locales_ignore_locales(self):
     56        l = LocalesTest()
     57        l.config["locales"] = ["a", "b", "c"]
     58        l.config["ignore_locales"] = ["a", "c"]
     59        self.assertEqual(["b"], l.query_locales())
     60 
     61    def test_query_locales_config(self):
     62        l = LocalesTest()
     63        l.config["locales"] = ["a", "b", "c"]
     64        self.assertEqual(l.config["locales"], l.query_locales())
     65 
     66    def test_query_locales_json(self):
     67        l = LocalesTest()
     68        l.config["locales_file"] = os.path.join(
     69            MH_DIR, "test/helper_files/locales.json"
     70        )
     71        l.config["base_work_dir"] = "."
     72        l.config["work_dir"] = "."
     73        l.config["locales_dir"] = "locales_dir"
     74        l.config["objdir"] = "objdir"
     75        locales = l.query_locales()
     76        locales.sort()
     77        self.assertEqual(ALL_LOCALES, locales)
     78 
     79    # Commenting out til we can hide the FATAL ?
     80    #    def test_query_locales_no_file(self):
     81    #        l = LocalesTest()
     82    #        l.config['base_work_dir'] = '.'
     83    #        l.config['work_dir'] = '.'
     84    #        try:
     85    #            l.query_locales()
     86    #        except SystemExit:
     87    #            pass # Good
     88    #        else:
     89    #            self.assertTrue(False, "query_locales with no file doesn't fatal()!")
     90 
     91    def test_parse_locales_file(self):
     92        l = LocalesTest()
     93        self.assertEqual(
     94            ALL_LOCALES,
     95            l.parse_locales_file(os.path.join(MH_DIR, "test/helper_files/locales.txt")),
     96        )
     97 
     98    def _get_query_abs_dirs_obj(self):
     99        l = LocalesTest()
    100        l.config["base_work_dir"] = "base_work_dir"
    101        l.config["work_dir"] = "work_dir"
    102        l.config["locales_dir"] = "locales_dir"
    103        l.config["objdir"] = "objdir"
    104        return l
    105 
    106    def test_query_abs_dirs_base(self):
    107        l = self._get_query_abs_dirs_obj()
    108        dirs = set(l.query_abs_dirs().keys())
    109        self.assertEqual(dirs, self.BASE_ABS_DIRS)
    110 
    111    def test_query_abs_dirs_base2(self):
    112        l = self._get_query_abs_dirs_obj()
    113        l.query_abs_dirs().keys()
    114        dirs = set(l.query_abs_dirs().keys())
    115        self.assertEqual(dirs, self.BASE_ABS_DIRS)
    116 
    117 
    118 if __name__ == "__main__":
    119    mozunit.main()