From b6f8d4fe8a3febb7878ebc12dcf5877e04d33dba Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Wed, 23 Nov 2016 16:12:32 -0500 Subject: [PATCH] add unit tests for project_config module Change-Id: Ie9875918ca694bbab5771ade8a0fe1df98a135e0 Signed-off-by: Doug Hellmann --- .../tests/test_project_config.py | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 openstack_releases/tests/test_project_config.py diff --git a/openstack_releases/tests/test_project_config.py b/openstack_releases/tests/test_project_config.py new file mode 100644 index 0000000000..c0ad2ac079 --- /dev/null +++ b/openstack_releases/tests/test_project_config.py @@ -0,0 +1,136 @@ +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from oslotest import base + +from openstack_releases import project_config + + +class TestReleaseJobsStandard(base.BaseTestCase): + + def test_no_artifact_flag(self): + deliverable_info = { + 'repository-settings': { + 'openstack/releases': { + 'flags': [ + 'no-artifact-build-job', + ], + }, + }, + } + zuul_layout = { + } + warnings = [] + errors = [] + project_config.require_release_jobs_for_repo( + deliverable_info, + {'validate-projects-by-name': zuul_layout}, + 'openstack/releases', + 'std', + warnings.append, + errors.append, + ) + self.assertEqual(0, len(warnings)) + self.assertEqual(0, len(errors)) + + def test_retired_flag(self): + deliverable_info = { + 'repository-settings': { + 'openstack/releases': { + 'flags': [ + 'retired', + ] + } + } + } + zuul_layout = { + } + warnings = [] + errors = [] + project_config.require_release_jobs_for_repo( + deliverable_info, + {'validate-projects-by-name': zuul_layout}, + 'openstack/releases', + 'std', + warnings.append, + errors.append, + ) + self.assertEqual(0, len(warnings)) + self.assertEqual(0, len(errors)) + + def test_no_zuul_layout(self): + deliverable_info = { + } + zuul_layout = { + } + warnings = [] + errors = [] + project_config.require_release_jobs_for_repo( + deliverable_info, + {'validate-projects-by-name': zuul_layout}, + 'openstack/releases', + 'std', + warnings.append, + errors.append, + ) + self.assertEqual(0, len(warnings)) + self.assertEqual(1, len(errors)) + + def test_one_expected_job(self): + deliverable_info = { + } + zuul_layout = { + 'openstack/releases': { + 'template': [ + {'name': 'publish-to-pypi'}, + ], + } + } + warnings = [] + errors = [] + project_config.require_release_jobs_for_repo( + deliverable_info, + {'validate-projects-by-name': zuul_layout}, + 'openstack/releases', + 'std', + warnings.append, + errors.append, + ) + print(warnings, errors) + self.assertEqual(0, len(warnings)) + self.assertEqual(0, len(errors)) + + def test_two_expected_jobs(self): + deliverable_info = { + } + zuul_layout = { + 'openstack/releases': { + 'template': [ + {'name': 'publish-to-pypi'}, + {'name': 'puppet-tarball-jobs'}, + ], + } + } + warnings = [] + errors = [] + project_config.require_release_jobs_for_repo( + deliverable_info, + {'validate-projects-by-name': zuul_layout}, + 'openstack/releases', + 'std', + warnings.append, + errors.append, + ) + self.assertEqual(1, len(warnings)) + self.assertEqual(0, len(errors))