diff options
Diffstat (limited to 'testing/mozharness/test/test_l10n_locales.py')
-rw-r--r-- | testing/mozharness/test/test_l10n_locales.py | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/testing/mozharness/test/test_l10n_locales.py b/testing/mozharness/test/test_l10n_locales.py new file mode 100644 index 000000000..e8372a9fb --- /dev/null +++ b/testing/mozharness/test/test_l10n_locales.py @@ -0,0 +1,132 @@ +import os +import shutil +import subprocess +import sys +import unittest + +import mozharness.base.log as log +import mozharness.base.script as script +import mozharness.mozilla.l10n.locales as locales + +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') + +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 + +class TestLocalesMixin(unittest.TestCase): + BASE_ABS_DIRS = ['abs_compare_locales_dir', 'abs_log_dir', + 'abs_upload_dir', 'abs_work_dir', 'base_work_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'] = '.' + 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" + return l + + def test_query_abs_dirs_base(self): + l = self._get_query_abs_dirs_obj() + dirs = l.query_abs_dirs().keys() + dirs.sort() + 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 = l.query_abs_dirs().keys() + dirs.sort() + self.assertEqual(dirs, self.BASE_ABS_DIRS) + + def test_query_abs_dirs_l10n(self): + l = self._get_query_abs_dirs_obj() + l.config['l10n_dir'] = "l10n_dir" + dirs = l.query_abs_dirs().keys() + dirs.sort() + expected_dirs = self.BASE_ABS_DIRS + ['abs_l10n_dir'] + expected_dirs.sort() + self.assertEqual(dirs, expected_dirs) + + def test_query_abs_dirs_mozilla(self): + l = self._get_query_abs_dirs_obj() + l.config['l10n_dir'] = "l10n_dir" + l.config['mozilla_dir'] = "mozilla_dir" + l.config['locales_dir'] = "locales_dir" + dirs = l.query_abs_dirs().keys() + dirs.sort() + expected_dirs = self.BASE_ABS_DIRS + ['abs_mozilla_dir', 'abs_locales_src_dir', 'abs_l10n_dir'] + expected_dirs.sort() + self.assertEqual(dirs, expected_dirs) + + def test_query_abs_dirs_objdir(self): + l = self._get_query_abs_dirs_obj() + l.config['l10n_dir'] = "l10n_dir" + l.config['mozilla_dir'] = "mozilla_dir" + l.config['locales_dir'] = "locales_dir" + l.config['objdir'] = "objdir" + dirs = l.query_abs_dirs().keys() + dirs.sort() + expected_dirs = self.BASE_ABS_DIRS + ['abs_mozilla_dir', 'abs_locales_src_dir', 'abs_l10n_dir', 'abs_objdir', 'abs_merge_dir', 'abs_locales_dir'] + expected_dirs.sort() + self.assertEqual(dirs, expected_dirs) + +if __name__ == '__main__': + unittest.main() |