Bug 1383996 - Make most calls to `mach artifact toolchain` output a manifest. r=gps
[gecko.git] / testing / mozharness / test / test_l10n_locales.py
blobe8372a9fbb83fd2dacccc9a1e66417eff36718eb
1 import os
2 import shutil
3 import subprocess
4 import sys
5 import unittest
7 import mozharness.base.log as log
8 import mozharness.base.script as script
9 import mozharness.mozilla.l10n.locales as locales
11 ALL_LOCALES = ['ar', 'be', 'de', 'es-ES']
13 MH_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
15 def cleanup():
16 if os.path.exists('test_logs'):
17 shutil.rmtree('test_logs')
19 class LocalesTest(locales.LocalesMixin, script.BaseScript):
20 def __init__(self, **kwargs):
21 if 'config' not in kwargs:
22 kwargs['config'] = {'log_type': 'simple',
23 'log_level': 'error'}
24 if 'initial_config_file' not in kwargs:
25 kwargs['initial_config_file'] = 'test/test.json'
26 super(LocalesTest, self).__init__(**kwargs)
27 self.config = {}
28 self.log_obj = None
30 class TestLocalesMixin(unittest.TestCase):
31 BASE_ABS_DIRS = ['abs_compare_locales_dir', 'abs_log_dir',
32 'abs_upload_dir', 'abs_work_dir', 'base_work_dir']
33 def setUp(self):
34 cleanup()
36 def tearDown(self):
37 cleanup()
39 def test_query_locales_locales(self):
40 l = LocalesTest()
41 l.locales = ['a', 'b', 'c']
42 self.assertEqual(l.locales, l.query_locales())
44 def test_query_locales_ignore_locales(self):
45 l = LocalesTest()
46 l.config['locales'] = ['a', 'b', 'c']
47 l.config['ignore_locales'] = ['a', 'c']
48 self.assertEqual(['b'], l.query_locales())
50 def test_query_locales_config(self):
51 l = LocalesTest()
52 l.config['locales'] = ['a', 'b', 'c']
53 self.assertEqual(l.config['locales'], l.query_locales())
55 def test_query_locales_json(self):
56 l = LocalesTest()
57 l.config['locales_file'] = os.path.join(MH_DIR, "test/helper_files/locales.json")
58 l.config['base_work_dir'] = '.'
59 l.config['work_dir'] = '.'
60 locales = l.query_locales()
61 locales.sort()
62 self.assertEqual(ALL_LOCALES, locales)
64 # Commenting out til we can hide the FATAL ?
65 # def test_query_locales_no_file(self):
66 # l = LocalesTest()
67 # l.config['base_work_dir'] = '.'
68 # l.config['work_dir'] = '.'
69 # try:
70 # l.query_locales()
71 # except SystemExit:
72 # pass # Good
73 # else:
74 # self.assertTrue(False, "query_locales with no file doesn't fatal()!")
76 def test_parse_locales_file(self):
77 l = LocalesTest()
78 self.assertEqual(ALL_LOCALES, l.parse_locales_file(os.path.join(MH_DIR, 'test/helper_files/locales.txt')))
80 def _get_query_abs_dirs_obj(self):
81 l = LocalesTest()
82 l.config['base_work_dir'] = "base_work_dir"
83 l.config['work_dir'] = "work_dir"
84 return l
86 def test_query_abs_dirs_base(self):
87 l = self._get_query_abs_dirs_obj()
88 dirs = l.query_abs_dirs().keys()
89 dirs.sort()
90 self.assertEqual(dirs, self.BASE_ABS_DIRS)
92 def test_query_abs_dirs_base2(self):
93 l = self._get_query_abs_dirs_obj()
94 l.query_abs_dirs().keys()
95 dirs = l.query_abs_dirs().keys()
96 dirs.sort()
97 self.assertEqual(dirs, self.BASE_ABS_DIRS)
99 def test_query_abs_dirs_l10n(self):
100 l = self._get_query_abs_dirs_obj()
101 l.config['l10n_dir'] = "l10n_dir"
102 dirs = l.query_abs_dirs().keys()
103 dirs.sort()
104 expected_dirs = self.BASE_ABS_DIRS + ['abs_l10n_dir']
105 expected_dirs.sort()
106 self.assertEqual(dirs, expected_dirs)
108 def test_query_abs_dirs_mozilla(self):
109 l = self._get_query_abs_dirs_obj()
110 l.config['l10n_dir'] = "l10n_dir"
111 l.config['mozilla_dir'] = "mozilla_dir"
112 l.config['locales_dir'] = "locales_dir"
113 dirs = l.query_abs_dirs().keys()
114 dirs.sort()
115 expected_dirs = self.BASE_ABS_DIRS + ['abs_mozilla_dir', 'abs_locales_src_dir', 'abs_l10n_dir']
116 expected_dirs.sort()
117 self.assertEqual(dirs, expected_dirs)
119 def test_query_abs_dirs_objdir(self):
120 l = self._get_query_abs_dirs_obj()
121 l.config['l10n_dir'] = "l10n_dir"
122 l.config['mozilla_dir'] = "mozilla_dir"
123 l.config['locales_dir'] = "locales_dir"
124 l.config['objdir'] = "objdir"
125 dirs = l.query_abs_dirs().keys()
126 dirs.sort()
127 expected_dirs = self.BASE_ABS_DIRS + ['abs_mozilla_dir', 'abs_locales_src_dir', 'abs_l10n_dir', 'abs_objdir', 'abs_merge_dir', 'abs_locales_dir']
128 expected_dirs.sort()
129 self.assertEqual(dirs, expected_dirs)
131 if __name__ == '__main__':
132 unittest.main()