Paladox has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/323546

Change subject: Add a new Skin dependacies test
......................................................................

Add a new Skin dependacies test

Change-Id: I342e55de412d2d823bf515740869758c762097f9
Depends-On: Icad88b9b0995199eb3e75b9e5ce9f7a0acfee16e
---
A tests/test_zuul_skin_dependencies.py
1 file changed, 67 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/integration/config 
refs/changes/46/323546/1

diff --git a/tests/test_zuul_skin_dependencies.py 
b/tests/test_zuul_skin_dependencies.py
new file mode 100644
index 0000000..47f7240
--- /dev/null
+++ b/tests/test_zuul_skin_dependencies.py
@@ -0,0 +1,67 @@
+import os
+import unittest
+
+from fakes import FakeJob
+
+dependencies = {}  # defined for flake8
+get_dependencies = None  # defined for flake8
+set_parameters = None  # defined for flake8
+# Import function
+execfile(os.path.join(
+    os.path.dirname(os.path.abspath(__file__)),
+    '../zuul/parameter_functions.py'))
+
+
+class TestSkinDependencies(unittest.TestCase):
+    def assertHasDependencies(self, params):
+        self.assertIn('EXT_DEPENDENCIES', params)
+
+    def assertMissingDependencies(self, params):
+        self.assertNotIn('EXT_DEPENDENCIES', params)
+
+    def fetch_dependencies(self, job_name=None, project=None):
+        if project:
+            params = {'ZUUL_PROJECT': project}
+        else:
+            params = {'ZUUL_PROJECT': 'mediawiki/skins/Example'}
+        job = FakeJob(job_name if job_name else 'mw-testskin')
+        set_parameters(None, job, params)
+        return params
+
+    def test_skin_name(self):
+        params = self.fetch_dependencies(
+            project='mediawiki/skins/Example')
+
+        self.assertIn('EXT_NAME', params)
+        self.assertEqual(params['EXT_NAME'], 'Example')
+
+    def test_cyclical_dependencies(self):
+        """verifies that cyclical dependencies are possible"""
+
+        mapping = {'Foo': ['Bar'], 'Bar': ['Foo']}
+
+        self.assertEqual(get_dependencies('Foo', mapping), set(['Foo', 'Bar']))
+
+    def test_resolvable_dependencies(self):
+        """verifies that we can resolve all of the dependencies"""
+        for ext_name in dependencies:
+            self.assertHasDependencies(self.fetch_dependencies(
+                project='mediawiki/' + ext_name))
+
+    def test_job_name(self):
+        self.assertHasDependencies(self.fetch_dependencies(
+            job_name='mw-testskin'))
+        self.assertHasDependencies(self.fetch_dependencies(
+            job_name='mw-testskin-non-voting'))
+        self.assertMissingDependencies(self.fetch_dependencies(
+            job_name='mediawiki-core-phplint'))
+
+    def test_zuul_project_name(self):
+        self.assertHasDependencies(self.fetch_dependencies(
+            project='mediawiki/skins/Example'))
+        self.assertMissingDependencies(self.fetch_dependencies(
+            project='mediawiki/skins'))
+        self.assertMissingDependencies(self.fetch_dependencies(
+            project='mediawiki/skins/Example/vendor'))
+        self.assertMissingDependencies(self.fetch_dependencies(
+            project='foo/bar/baz'))

-- 
To view, visit https://gerrit.wikimedia.org/r/323546
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I342e55de412d2d823bf515740869758c762097f9
Gerrit-PatchSet: 1
Gerrit-Project: integration/config
Gerrit-Branch: master
Gerrit-Owner: Paladox <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to