fix require_release_jobs_for_repo use of messages object

Change-Id: I9a701fb6d57943f701d81c6d5203590ce003ec32
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann
2018-02-20 17:46:24 -05:00
parent 9544df454c
commit 5e863df520
2 changed files with 26 additions and 36 deletions

View File

@@ -119,7 +119,7 @@ _RELEASE_JOBS_FOR_TYPE = {
def require_release_jobs_for_repo(deliv, zuul_projects, repo,
release_type, mk_warning, mk_error):
release_type, messages):
"""Check the repository for release jobs.
Returns a list of tuples containing a message and a boolean
@@ -140,7 +140,7 @@ def require_release_jobs_for_repo(deliv, zuul_projects, repo,
return
if repo.name not in zuul_projects:
mk_error(
messages.error(
'did not find %s in %s' % (repo.name, ZUUL_PROJECTS_FILENAME),
)
else:
@@ -159,7 +159,7 @@ def require_release_jobs_for_repo(deliv, zuul_projects, repo,
if j in expected_jobs
]
if len(found_jobs) == 0:
mk_error(
messages.error(
'{filename} no release job specified for {repo}, '
'one of {expected!r} needs to be included in {existing!r} '
'or no release will be '
@@ -171,7 +171,7 @@ def require_release_jobs_for_repo(deliv, zuul_projects, repo,
),
)
elif len(found_jobs) > 1:
mk_warning(
messages.warning(
'{filename} multiple release jobs specified for {repo}, '
'{existing!r} should include *one* of '
'{expected!r}, found {found!r}'.format(
@@ -193,7 +193,7 @@ def require_release_jobs_for_repo(deliv, zuul_projects, repo,
if j in templates and j not in expected_jobs
]
if bad_jobs:
mk_error(
messages.error(
'{filename} has unexpected release jobs '
'{bad_jobs!r} for release-type {wrong_type} '
'but {repo} uses release-type {release_type}'.format(

View File

@@ -14,12 +14,17 @@
from oslotest import base
from openstack_releases.cmds import validate
from openstack_releases import deliverable
from openstack_releases import project_config
class TestReleaseJobsStandard(base.BaseTestCase):
def setUp(self):
super().setUp()
self.msg = validate.MessageCollector()
def test_no_artifact_flag(self):
deliv = deliverable.Deliverable(
team='team',
@@ -37,18 +42,15 @@ class TestReleaseJobsStandard(base.BaseTestCase):
)
zuul_projects = {
}
warnings = []
errors = []
project_config.require_release_jobs_for_repo(
deliv,
{'validate-projects-by-name': zuul_projects},
deliv.repos[0],
'std',
warnings.append,
errors.append,
self.msg,
)
self.assertEqual(0, len(warnings))
self.assertEqual(0, len(errors))
self.assertEqual(0, len(self.msg.warnings))
self.assertEqual(0, len(self.msg.errors))
def test_retired_flag(self):
deliv = deliverable.Deliverable(
@@ -67,18 +69,15 @@ class TestReleaseJobsStandard(base.BaseTestCase):
)
zuul_projects = {
}
warnings = []
errors = []
project_config.require_release_jobs_for_repo(
deliv,
{'validate-projects-by-name': zuul_projects},
deliv.repos[0],
'std',
warnings.append,
errors.append,
self.msg,
)
self.assertEqual(0, len(warnings))
self.assertEqual(0, len(errors))
self.assertEqual(0, len(self.msg.warnings))
self.assertEqual(0, len(self.msg.errors))
def test_no_zuul_projects(self):
deliv = deliverable.Deliverable(
@@ -93,18 +92,15 @@ class TestReleaseJobsStandard(base.BaseTestCase):
)
zuul_projects = {
}
warnings = []
errors = []
project_config.require_release_jobs_for_repo(
deliv,
{'validate-projects-by-name': zuul_projects},
deliv.repos[0],
'std',
warnings.append,
errors.append,
self.msg,
)
self.assertEqual(0, len(warnings))
self.assertEqual(1, len(errors))
self.assertEqual(0, len(self.msg.warnings))
self.assertEqual(1, len(self.msg.errors))
def test_one_expected_job(self):
deliv = deliverable.Deliverable(
@@ -124,19 +120,16 @@ class TestReleaseJobsStandard(base.BaseTestCase):
],
},
}
warnings = []
errors = []
project_config.require_release_jobs_for_repo(
deliv,
zuul_projects,
deliv.repos[0],
'python-pypi',
warnings.append,
errors.append,
self.msg,
)
print(warnings, errors)
self.assertEqual(0, len(warnings))
self.assertEqual(0, len(errors))
self.msg.show_summary()
self.assertEqual(0, len(self.msg.warnings))
self.assertEqual(0, len(self.msg.errors))
def test_two_expected_jobs(self):
deliv = deliverable.Deliverable(
@@ -157,15 +150,12 @@ class TestReleaseJobsStandard(base.BaseTestCase):
],
}
}
warnings = []
errors = []
project_config.require_release_jobs_for_repo(
deliv,
zuul_projects,
deliv.repos[0],
'python-pypi',
warnings.append,
errors.append,
self.msg,
)
self.assertEqual(0, len(warnings))
self.assertEqual(1, len(errors))
self.assertEqual(0, len(self.msg.warnings))
self.assertEqual(1, len(self.msg.errors))