def test_new_not_at_end(self): deliverable_info = { 'artifact-link-mode': 'none', 'releases': [ {'version': '1.3.999', 'projects': [ {'repo': 'openstack/automaton', 'hash': 'e87dc55a48387d2b8b8c46e02a342c27995dacb1'}, ]}, {'version': '1.4.0', 'projects': [ {'repo': 'openstack/automaton', 'hash': 'c6278ba1a8167447a5f52bdb92c2790abc5d0f87'}, ]}, ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'ocata', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(1, len(errors))
def test_invalid_version(self, validate_version): # Set up the nested validation function to produce an error, # even though there is nothing else wrong with the # inputs. That ensures we only get the 1 error back. validate_version.configure_mock( return_value=['an error goes here'], ) deliverable_info = { 'artifact-link-mode': 'none', 'releases': [ {'version': '99.5.0', 'projects': [ {'repo': 'openstack/automaton', 'hash': 'be2885f544637e6ee6139df7dc7bf937925804dd'}, ]} ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'ocata', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(1, len(errors))
def test_not_descendent(self): deliverable_info = { 'artifact-link-mode': 'none', 'releases': [ {'version': '1.4.0', 'projects': [ {'repo': 'openstack/automaton', 'hash': 'c6278ba1a8167447a5f52bdb92c2790abc5d0f87'}, ]}, {'version': '1.4.999', 'projects': [ {'repo': 'openstack/automaton', # a commit on stable/mitaka instead of stable/newton 'hash': 'e92b85ec64ac74598983a90bd2f3e1cf232ba9d5'}, ]}, ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'ocata', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(1, len(errors))
def test_no_releases(self): # When we initialize a new series, we won't have any release # data. That's OK. deliverable_info = { 'artifact-link-mode': 'none', 'releases': [] } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'ocata', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(0, len(errors))
def test_no_such_hash(self): deliverable_info = { 'artifact-link-mode': 'none', 'releases': [ {'version': '99.0.0', 'projects': [ {'repo': 'openstack/automaton', 'hash': 'de2885f544637e6ee6139df7dc7bf937925804dd'}, ]} ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'ocata', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(1, len(errors))
def test_invalid_hash(self): deliverable_info = { 'artifact-link-mode': 'none', 'releases': [ {'version': '0.1', 'projects': [ {'repo': 'openstack/automaton', 'hash': 'this-is-not-a-hash'}, ]} ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'ocata', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(1, len(errors))
def test_check_release_jobs(self, check_jobs): deliverable_info = { 'releases': [ {'version': '1.5.0', 'projects': [ {'repo': 'openstack/automaton', 'hash': 'be2885f544637e6ee6139df7dc7bf937925804dd'}, ]} ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'ocata', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(0, len(errors)) check_jobs.assert_called_once()
def test_hash_from_stable_used_in_master_release(self): deliverable_info = { 'artifact-link-mode': 'none', 'releases': [ {'version': '99.5.0', 'projects': [ {'repo': 'openstack/automaton', # hash from stable/newton 'hash': '95db03ed96dcd1a582936b4660b4db55ce606e49'}, ]} ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, defaults.RELEASE, self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(1, len(errors))
def test_hash_from_master_used_in_stable_release(self): deliverable_info = { 'artifact-link-mode': 'none', 'releases': [ {'version': '1.4.1', 'projects': [ {'repo': 'openstack/automaton', # hash from master 'hash': 'ec62e6270dba8f3d6a60600876be8fd99f7c5b08'}, ]} ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'newton', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(1, len(errors))
def test_mismatch_existing(self): deliverable_info = { 'artifact-link-mode': 'none', 'releases': [ {'version': '1.5.0', 'projects': [ {'repo': 'openstack/automaton', # hash from the previous release 'hash': 'c6278ba1a8167447a5f52bdb92c2790abc5d0f87'}, ]} ], } warnings = [] errors = [] validate.validate_releases( deliverable_info, {'validate-projects-by-name': {}}, 'ocata', self.tmpdir, warnings.append, errors.append, ) self.assertEqual(0, len(warnings)) self.assertEqual(1, len(errors))