summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2019-03-25 22:25:33 +0000
committerGerrit Code Review <review@openstack.org>2019-03-25 22:25:33 +0000
commit65596aaafd54f690410eb80b1abea28ef6f9c0f0 (patch)
treec776a86f5f319f4a46303a335e2a13080e34e55f /tests
parent570a8ead7a6d7c9810a126bc69ca7b65d59881fb (diff)
parent4bf0fb03d823e0018734f4549b11663524ae2536 (diff)
downloadzuul-65596aaafd54f690410eb80b1abea28ef6f9c0f0.tar.gz
Merge "Add API endpoint to get frozen jobs"
Diffstat (limited to 'tests')
-rwxr-xr-xtests/unit/test_web.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/unit/test_web.py b/tests/unit/test_web.py
index 7fb8fe495..211f7cb1d 100755
--- a/tests/unit/test_web.py
+++ b/tests/unit/test_web.py
@@ -710,6 +710,53 @@ class TestWeb(BaseTestWeb):
job = self.get_url("api/tenant/tenant-one/job/noop").json()
self.assertEqual("noop", job[0]["name"])
+ def test_freeze_jobs(self):
+ # Test can get a list of the jobs for a given project+pipeline+branch.
+ resp = self.get_url(
+ "api/tenant/tenant-one/pipeline/check"
+ "/project/org/project1/branch/master/freeze-jobs")
+
+ freeze_jobs = [{
+ 'name': 'project-merge',
+ 'dependencies': [],
+ }, {
+ 'name': 'project-test1',
+ 'dependencies': [{
+ 'name': 'project-merge',
+ 'soft': False,
+ }],
+ }, {
+ 'name': 'project-test2',
+ 'dependencies': [{
+ 'name': 'project-merge',
+ 'soft': False,
+ }],
+ }, {
+ 'name': 'project1-project2-integration',
+ 'dependencies': [{
+ 'name': 'project-merge',
+ 'soft': False,
+ }],
+ }]
+ self.assertEqual(freeze_jobs, resp.json())
+
+ def test_freeze_jobs_set_includes_all_jobs(self):
+ # When freezing a job set we want to include all jobs even if they
+ # have certain matcher requirements (such as required files) since we
+ # can't otherwise evaluate them.
+
+ resp = self.get_url(
+ "api/tenant/tenant-one/pipeline/gate"
+ "/project/org/project/branch/master/freeze-jobs")
+ expected = {
+ 'name': 'project-testfile',
+ 'dependencies': [{
+ 'name': 'project-merge',
+ 'soft': False,
+ }],
+ }
+ self.assertIn(expected, resp.json())
+
class TestWebSecrets(BaseTestWeb):
tenant_config_file = 'config/secrets/main.yaml'