summaryrefslogtreecommitdiffstats
path: root/testing/mozharness/test/test_l10n_locales.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/mozharness/test/test_l10n_locales.py')
-rw-r--r--testing/mozharness/test/test_l10n_locales.py132
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()