bug 1392423, test case for ordering of nested paths draft
authorAxel Hecht <axel@pike.org>
Mon, 21 Aug 2017 23:12:44 +0200
changeset 311 46739065f08390bd6e51914caf12c5baf2a61edf
parent 310 3cf15026dd4db3d3ce4baca0b81acc4444c1a4b8
push id94
push useraxel@mozilla.com
push dateMon, 21 Aug 2017 21:13:09 +0000
bugs1392423
bug 1392423, test case for ordering of nested paths MozReview-Commit-ID: E9n4BCDlDls
compare_locales/tests/test_paths.py
--- 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(