import os
import shutil
import unittest
from unittest import mock
import mozharness.base.script as script
import mozharness.mozilla.l10n.locales as locales
import mozunit
ALL_LOCALES = ["ar" , "be" , "de" , "es-ES" ]
MH_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
def cleanup():
if os.path.exists("test_logs" ):
shutil.rmtree("test_logs" , ignore_errors=True )
class LocalesTest(locales.LocalesMixin, script.BaseScript):
def __init__(self, **kwargs):
if "config" not in kwargs:
kwargs["config" ] = {"log_type" : "simple" , "log_level" : "error" }
if "initial_config_file" not in kwargs:
kwargs["initial_config_file" ] = "test/test.json"
super(LocalesTest, self).__init__(**kwargs)
self.config = {}
self.log_obj = None
@mock.patch.dict("os.environ" , GECKO_PATH="gecko_src" )
class TestLocalesMixin(unittest.TestCase):
BASE_ABS_DIRS = {
"abs_log_dir" ,
"abs_work_dir" ,
"base_work_dir" ,
"abs_src_dir" ,
"abs_locales_src_dir" ,
"abs_l10n_dir" ,
"abs_obj_dir" ,
"abs_locales_dir" ,
}
def setUp(self):
cleanup()
def tearDown(self):
cleanup()
def test_query_locales_locales(self):
l = LocalesTest()
l.locales = ["a" , "b" , "c" ]
self.assertEqual(l.locales, l.query_locales())
def test_query_locales_ignore_locales(self):
l = LocalesTest()
l.config["locales" ] = ["a" , "b" , "c" ]
l.config["ignore_locales" ] = ["a" , "c" ]
self.assertEqual(["b" ], l.query_locales())
def test_query_locales_config(self):
l = LocalesTest()
l.config["locales" ] = ["a" , "b" , "c" ]
self.assertEqual(l.config["locales" ], l.query_locales())
def test_query_locales_json(self):
l = LocalesTest()
l.config["locales_file" ] = os.path.join(
MH_DIR, "test/helper_files/locales.json"
)
l.config["base_work_dir" ] = "."
l.config["work_dir" ] = "."
l.config["locales_dir" ] = "locales_dir"
l.config["objdir" ] = "objdir"
locales = l.query_locales()
locales.sort()
self.assertEqual(ALL_LOCALES, locales)
# Commenting out til we can hide the FATAL ?
# def test_query_locales_no_file(self):
# l = LocalesTest()
# l.config['base_work_dir'] = '.'
# l.config['work_dir'] = '.'
# try:
# l.query_locales()
# except SystemExit:
# pass # Good
# else:
# self.assertTrue(False, "query_locales with no file doesn't fatal()!")
def test_parse_locales_file(self):
l = LocalesTest()
self.assertEqual(
ALL_LOCALES,
l.parse_locales_file(os.path.join(MH_DIR, "test/helper_files/locales.txt" )),
)
def _get_query_abs_dirs_obj(self):
l = LocalesTest()
l.config["base_work_dir" ] = "base_work_dir"
l.config["work_dir" ] = "work_dir"
l.config["locales_dir" ] = "locales_dir"
l.config["objdir" ] = "objdir"
return l
def test_query_abs_dirs_base(self):
l = self._get_query_abs_dirs_obj()
dirs = set(l.query_abs_dirs().keys())
self.assertEqual(dirs, self.BASE_ABS_DIRS)
def test_query_abs_dirs_base2(self):
l = self._get_query_abs_dirs_obj()
l.query_abs_dirs().keys()
dirs = set(l.query_abs_dirs().keys())
self.assertEqual(dirs, self.BASE_ABS_DIRS)
if __name__ == "__main__" :
mozunit.main()
Messung V0.5 C=95 H=96 G=95
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland