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