let each validation function apply its own rules
Rather than testing the series condition outside of the validation function, go ahead and call it and let the function skip the deliverable if its rules do not apply. Change-Id: Ib02cdec2cba088bd13ba307822f0ecbb14ddc899 Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
parent
f97c20c974
commit
e9285b6620
@ -105,6 +105,10 @@ def validate_series_open(deliv, context):
|
||||
"No releases in the new series until the previous one has a branch."
|
||||
header('Validate Series Open')
|
||||
|
||||
if deliv.series != defaults.RELEASE:
|
||||
LOG.info('this rule only applies to the most current series, skipping')
|
||||
return
|
||||
|
||||
if not deliv.is_released:
|
||||
LOG.info('no releases, skipping')
|
||||
return
|
||||
@ -858,6 +862,10 @@ def validate_new_releases(deliv, context):
|
||||
"""
|
||||
header('Validate New Releases')
|
||||
|
||||
if deliv.series != defaults.RELEASE:
|
||||
LOG.info('this rule only applies to the most current series, skipping')
|
||||
return
|
||||
|
||||
if not deliv.is_released:
|
||||
LOG.info('no releases, skipping')
|
||||
return
|
||||
@ -1372,10 +1380,8 @@ def main():
|
||||
validate_new_releases_at_end(deliv, context)
|
||||
validate_release_branch_membership(deliv, context)
|
||||
validate_tarball_base(deliv, context)
|
||||
# Some rules only apply to the most current release.
|
||||
if deliv.series == defaults.RELEASE:
|
||||
validate_new_releases(deliv, context)
|
||||
validate_series_open(deliv, context)
|
||||
validate_new_releases(deliv, context)
|
||||
validate_series_open(deliv, context)
|
||||
validate_series_first(deliv, context)
|
||||
validate_branch_prefixes(deliv, context)
|
||||
validate_stable_branches(deliv, context)
|
||||
|
@ -38,7 +38,7 @@ class TestValidateBugTracker(base.BaseTestCase):
|
||||
validate.validate_bugtracker(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={},
|
||||
),
|
||||
@ -53,7 +53,7 @@ class TestValidateBugTracker(base.BaseTestCase):
|
||||
validate.validate_bugtracker(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={'launchpad': 'nonsense-name'},
|
||||
),
|
||||
@ -68,7 +68,7 @@ class TestValidateBugTracker(base.BaseTestCase):
|
||||
validate.validate_bugtracker(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={'launchpad': 'oslo.config'},
|
||||
),
|
||||
@ -84,7 +84,7 @@ class TestValidateBugTracker(base.BaseTestCase):
|
||||
validate.validate_bugtracker(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={'launchpad': 'oslo.config'},
|
||||
),
|
||||
@ -121,7 +121,7 @@ class TestValidateBugTracker(base.BaseTestCase):
|
||||
validate.validate_bugtracker(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={'storyboard': '760'},
|
||||
),
|
||||
@ -148,7 +148,7 @@ class TestValidateBugTracker(base.BaseTestCase):
|
||||
validate.validate_bugtracker(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={'storyboard': '-760'},
|
||||
),
|
||||
@ -169,7 +169,7 @@ class TestValidateTeam(base.BaseTestCase):
|
||||
validate.validate_team(
|
||||
deliverable.Deliverable(
|
||||
team='nonsense-name',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={},
|
||||
),
|
||||
@ -184,7 +184,7 @@ class TestValidateTeam(base.BaseTestCase):
|
||||
validate.validate_team(
|
||||
deliverable.Deliverable(
|
||||
team='oslo',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={},
|
||||
),
|
||||
@ -204,7 +204,7 @@ class TestValidateReleaseNotes(base.BaseTestCase):
|
||||
validate.validate_release_notes(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={},
|
||||
),
|
||||
@ -217,7 +217,7 @@ class TestValidateReleaseNotes(base.BaseTestCase):
|
||||
validate.validate_release_notes(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'release-notes': 'https://docs.openstack.org/no-such-page',
|
||||
@ -232,7 +232,7 @@ class TestValidateReleaseNotes(base.BaseTestCase):
|
||||
validate.validate_release_notes(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={'release-notes':
|
||||
'https://docs.openstack.org/releasenotes/oslo.config'},
|
||||
@ -246,7 +246,7 @@ class TestValidateReleaseNotes(base.BaseTestCase):
|
||||
validate.validate_release_notes(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'repository-settings': {
|
||||
@ -267,7 +267,7 @@ class TestValidateReleaseNotes(base.BaseTestCase):
|
||||
validate.validate_release_notes(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'repository-settings': {
|
||||
@ -288,7 +288,7 @@ class TestValidateReleaseNotes(base.BaseTestCase):
|
||||
validate.validate_release_notes(
|
||||
deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'repository-settings': {
|
||||
@ -819,7 +819,7 @@ class TestGetReleaseType(base.BaseTestCase):
|
||||
def test_explicit(self):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -843,7 +843,7 @@ class TestGetReleaseType(base.BaseTestCase):
|
||||
def test_library(self):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -867,7 +867,7 @@ class TestGetReleaseType(base.BaseTestCase):
|
||||
def test_service(self):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -891,7 +891,7 @@ class TestGetReleaseType(base.BaseTestCase):
|
||||
def test_implicit_pypi(self):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -915,7 +915,7 @@ class TestGetReleaseType(base.BaseTestCase):
|
||||
def test_pypi_false(self):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -941,7 +941,7 @@ class TestGetReleaseType(base.BaseTestCase):
|
||||
llam.return_value = True
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -966,7 +966,7 @@ class TestGetReleaseType(base.BaseTestCase):
|
||||
llam.return_value = True
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -993,7 +993,7 @@ class TestGetReleaseType(base.BaseTestCase):
|
||||
nllam.return_value = False
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -1057,7 +1057,7 @@ class TestPuppetUtils(base.BaseTestCase):
|
||||
cbs.return_value = True
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -1087,7 +1087,7 @@ class TestValidateTarballBase(base.BaseTestCase):
|
||||
def test_default_ok(self, gsn, jobs):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'releases': [
|
||||
@ -1111,7 +1111,7 @@ class TestValidateTarballBase(base.BaseTestCase):
|
||||
def test_ignored_link_mode_none(self, gsn, jobs):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -1136,7 +1136,7 @@ class TestValidateTarballBase(base.BaseTestCase):
|
||||
def test_default_invalid(self, gsn, jobs):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'releases': [
|
||||
@ -1160,7 +1160,7 @@ class TestValidateTarballBase(base.BaseTestCase):
|
||||
def test_explicit_ok(self, gsn, jobs):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'releases': [
|
||||
@ -1185,7 +1185,7 @@ class TestValidateTarballBase(base.BaseTestCase):
|
||||
def test_explicit_invalid(self, gsn, jobs):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data={
|
||||
'releases': [
|
||||
@ -1258,7 +1258,7 @@ class TestValidateNewReleases(base.BaseTestCase):
|
||||
# match.
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='release-test',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -1283,7 +1283,7 @@ class TestValidateNewReleases(base.BaseTestCase):
|
||||
# The tag includes a repo not in governance.
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='release-test',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -1312,7 +1312,7 @@ class TestValidateNewReleases(base.BaseTestCase):
|
||||
# The tag is missing a repo in governance.
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='release-test',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -1343,7 +1343,7 @@ class TestValidateNewReleases(base.BaseTestCase):
|
||||
# (2 warnings).
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='release-test',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -1369,7 +1369,7 @@ class TestValidateNewReleases(base.BaseTestCase):
|
||||
# repository-settings.
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='release-test',
|
||||
data={
|
||||
'artifact-link-mode': 'none',
|
||||
@ -1402,7 +1402,7 @@ class TestValidateBranchPrefixes(base.BaseTestCase):
|
||||
def test_invalid_prefix(self):
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='release-test',
|
||||
data={
|
||||
'branches': [
|
||||
@ -1419,7 +1419,7 @@ class TestValidateBranchPrefixes(base.BaseTestCase):
|
||||
for prefix in validate._VALID_BRANCH_PREFIXES:
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='series',
|
||||
series=defaults.RELEASE,
|
||||
name='release-test',
|
||||
data={
|
||||
'branches': [
|
||||
@ -2117,7 +2117,7 @@ class TestValidateSeriesOpen(base.BaseTestCase):
|
||||
def test_no_stable_branch(self):
|
||||
series_a_dir = self.tmpdir + '/a'
|
||||
series_a_filename = series_a_dir + '/automaton.yaml'
|
||||
series_b_dir = self.tmpdir + '/b'
|
||||
series_b_dir = self.tmpdir + '/' + defaults.RELEASE
|
||||
series_b_filename = series_b_dir + '/automaton.yaml'
|
||||
os.makedirs(series_a_dir)
|
||||
os.makedirs(series_b_dir)
|
||||
@ -2138,7 +2138,7 @@ class TestValidateSeriesOpen(base.BaseTestCase):
|
||||
f.write(deliverable_data)
|
||||
deliv = deliverable.Deliverable(
|
||||
team='team',
|
||||
series='b',
|
||||
series=defaults.RELEASE,
|
||||
name='name',
|
||||
data=yamlutils.loads(deliverable_data),
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user