bug 1392423, test case for ordering of nested paths
MozReview-Commit-ID: E9n4BCDlDls
--- a/compare_locales/tests/test_paths.py
+++ b/compare_locales/tests/test_paths.py
@@ -410,16 +410,70 @@ class TestProjectPaths(unittest.TestCase
files = MockProjectFiles(mocks, 'fr', [cfg])
self.assertListEqual(
list(files),
[
('/tmp/fr/major/good.ftl', None, None, set()),
])
+
+class TestNestedProjectPaths(unittest.TestCase):
+ def test_top_down(self):
+ cfg = ProjectConfig()
+ cfg.locales.append('de')
+ cfg.add_paths({
+ 'l10n': '{l10n_base}/{locale}/**',
+ 'reference': '/tmp/reference/bar/**'
+ })
+ cfg.add_paths({
+ 'l10n': '{l10n_base}/{locale}/module/**',
+ 'reference': '/tmp/reference/module/bar/**'
+ })
+ self._test(cfg)
+
+ def test_bottom_up(self):
+ cfg = ProjectConfig()
+ cfg.locales.append('de')
+ cfg.add_paths({
+ 'l10n': '{l10n_base}/{locale}/module/**',
+ 'reference': '/tmp/reference/module/bar/**'
+ })
+ cfg.add_paths({
+ 'l10n': '{l10n_base}/{locale}/**',
+ 'reference': '/tmp/reference/bar/**'
+ })
+ self._test(cfg)
+
+ def _test(self, cfg):
+ cfg.add_environment(l10n_base='/tmp/l10n')
+ mocks = {
+ '/tmp/l10n/de/': [
+ 'one.ftl',
+ 'module/two.ftl'
+ ],
+ '/tmp/l10n/de/module/': [
+ 'two.ftl'
+ ],
+ '/tmp/reference/bar/': [
+ 'one.ftl'
+ ],
+ '/tmp/reference/module/bar/': [
+ 'two.ftl'
+ ],
+ }
+ files = MockProjectFiles(mocks, 'de', [cfg])
+ self.assertListEqual(
+ list(files),
+ [
+ ('/tmp/l10n/de/module/two.ftl', '/tmp/reference/module/bar/two.ftl', None, set()),
+ ('/tmp/l10n/de/one.ftl', '/tmp/reference/bar/one.ftl', None, set()),
+ ])
+
+
class TestProjectConfig(unittest.TestCase):
def test_expand_paths(self):
pc = ProjectConfig()
pc.add_environment(one="first_path")
self.assertEqual(pc.expand('foo'), 'foo')
self.assertEqual(pc.expand('foo{one}bar'), 'foofirst_pathbar')
pc.add_environment(l10n_base='../tmp/localizations')
self.assertEqual(