Example #1
0
 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))
Example #2
0
 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))
Example #3
0
 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))
Example #4
0
 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))
Example #5
0
 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))
Example #6
0
 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))
Example #7
0
 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()
Example #8
0
 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))
Example #9
0
 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))
Example #10
0
 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))