use deliverable model object to validate the team name

Also rely on the schema validation to require a team setting at all.

Change-Id: I7e49a5ab717fc44d190e99bba28caa63ee54ae33
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2018-02-20 16:08:14 -05:00
parent 439c896c6b
commit 1e9eab181a
4 changed files with 21 additions and 18 deletions

View File

@ -243,14 +243,13 @@ def validate_bugtracker(deliv, messages):
messages.error('No launchpad or storyboard project given')
def validate_team(deliverable_info, team_data, messages):
def validate_team(deliv, team_data, messages):
"Look for the team name"
header('Validate Team')
if 'team' not in deliverable_info:
messages.error('No team name given')
elif deliverable_info['team'] not in team_data:
if deliv.team not in team_data:
messages.warning('Team %r not in governance data' %
deliverable_info['team'])
deliv.team)
LOG.debug('owned by team {}'.format(deliv.team))
def validate_release_notes(deliverable_info, messages):
@ -1330,7 +1329,7 @@ def main():
)
clone_deliverable(deliv, workdir, messages)
validate_bugtracker(deliv, messages)
validate_team(deliverable_info, team_data, messages)
validate_team(deliv, team_data, messages)
validate_release_notes(deliverable_info, messages)
validate_type(deliverable_info, messages)
validate_model(deliverable_info, series_name, messages)

View File

@ -221,7 +221,7 @@ class Deliverable(object):
def __init__(self, team, series, name, data):
self.team = team
if self.team is None:
self.team = data['team']
self.team = data.get('team')
self.series = series
self.name = name
self._data = data

View File

@ -6,6 +6,9 @@ $id: "http://git.openstack.org/cgit/openstack/releases/tree/README.rst"
# typos.
additionalProperties: false
required:
- team
properties:
team:
type: "string"

View File

@ -164,18 +164,14 @@ class TestValidateTeam(base.BaseTestCase):
super().setUp()
self.msg = validate.MessageCollector()
def test_no_name(self):
validate.validate_team(
{},
{},
self.msg,
)
self.assertEqual(0, len(self.msg.warnings))
self.assertEqual(1, len(self.msg.errors))
def test_invalid_name(self):
validate.validate_team(
{'team': 'nonsense-name'},
deliverable.Deliverable(
team='nonsense-name',
series='series',
name='name',
data={},
),
{},
self.msg,
)
@ -185,7 +181,12 @@ class TestValidateTeam(base.BaseTestCase):
def test_valid_name(self):
validate.validate_team(
{'team': 'oslo'},
deliverable.Deliverable(
team='oslo',
series='series',
name='name',
data={},
),
{'oslo': None},
self.msg,
)