From 2c82f331f7ea0bc903d50bb1aee3555035d40288 Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Tue, 28 Nov 2023 17:25:13 -0700 Subject: [PATCH] tests: Remove some gitbuilder-related tests Signed-off-by: Zack Cerza --- teuthology/suite/test/test_run_.py | 91 +++----------------- teuthology/suite/test/test_util.py | 131 +++-------------------------- 2 files changed, 25 insertions(+), 197 deletions(-) diff --git a/teuthology/suite/test/test_run_.py b/teuthology/suite/test/test_run_.py index 0b322351fb..1dc23e20d7 100644 --- a/teuthology/suite/test/test_run_.py +++ b/teuthology/suite/test/test_run_.py @@ -5,19 +5,13 @@ import contextlib import yaml from datetime import datetime -from mock import patch, call, ANY, DEFAULT -from teuthology.util.compat import PY3 -if PY3: - from io import StringIO - from io import BytesIO -else: - from io import BytesIO as StringIO - from io import BytesIO +from mock import patch, call, ANY +from io import StringIO +from io import BytesIO from teuthology.config import config, YamlConfig from teuthology.exceptions import ScheduleFailError from teuthology.suite import run -from teuthology import packaging class TestRun(object): @@ -145,8 +139,10 @@ class TestRun(object): @patch('teuthology.suite.util.smtplib.SMTP') @patch('teuthology.suite.util.git_ls_remote') + @patch('teuthology.suite.util.package_version_for_hash') def test_teuthology_branch_nonexistent( self, + m_pvfh, m_git_ls_remote, m_smtp, ): @@ -159,48 +155,6 @@ class TestRun(object): self.klass(self.args) m_smtp.assert_not_called() - @patch('teuthology.suite.run.util.fetch_repos') - @patch('teuthology.suite.run.util.git_branch_exists') - @patch('teuthology.suite.run.util.package_version_for_hash') - @patch('teuthology.suite.run.util.git_ls_remote') - @patch('teuthology.suite.run.os.path.exists') - def test_regression( - self, - m_qa_teuthology_branch_exists, - m_git_ls_remote, - m_package_version_for_hash, - m_git_branch_exists, - m_fetch_repos, - ): - config.use_shaman = False - config.gitbuilder_host = 'example.com' - m_package_version_for_hash.return_value = 'ceph_hash' - m_git_branch_exists.return_value = True - m_git_ls_remote.return_value = "suite_branch" - m_qa_teuthology_branch_exists.return_value = False - self.args_dict = { - 'base_yaml_paths': [], - 'ceph_branch': 'main', - 'machine_type': 'smithi', - 'flavor': 'default', - 'kernel_branch': 'testing', - 'suite': 'krbd', - } - self.args = YamlConfig.from_dict(self.args_dict) - with patch.multiple( - 'teuthology.packaging.GitbuilderProject', - _get_package_sha1=DEFAULT, - ) as m: - assert m != dict() - m['_get_package_sha1'].return_value = 'SHA1' - conf = dict( - os_type='ubuntu', - os_version='16.04', - ) - assert packaging.GitbuilderProject('ceph', conf).sha1 == 'SHA1' - run_ = self.klass(self.args) - assert run_.base_config['kernel']['sha1'] == 'SHA1' - class TestScheduleSuite(object): klass = run.Run @@ -225,8 +179,6 @@ class TestScheduleSuite(object): @patch('teuthology.suite.run.Run.schedule_jobs') @patch('teuthology.suite.run.Run.write_rerun_memo') - @patch('teuthology.suite.util.has_packages_for_distro') - @patch('teuthology.suite.util.get_package_versions') @patch('teuthology.suite.util.get_install_task_flavor') @patch('teuthology.suite.merge.open') @patch('teuthology.suite.run.build_matrix') @@ -243,8 +195,6 @@ class TestScheduleSuite(object): m_build_matrix, m_open, m_get_install_task_flavor, - m_get_package_versions, - m_has_packages_for_distro, m_write_rerun_memo, m_schedule_jobs, ): @@ -266,8 +216,7 @@ class TestScheduleSuite(object): contextlib.closing(BytesIO()) ] m_get_install_task_flavor.return_value = 'default' - m_get_package_versions.return_value = dict() - m_has_packages_for_distro.return_value = True + m_package_version_for_hash.return_value = "v1" # schedule_jobs() is just neutered; check calls below self.args.newest = 0 @@ -277,8 +226,8 @@ class TestScheduleSuite(object): count = runobj.schedule_suite() assert(count == 1) assert runobj.base_config['suite_sha1'] == 'suite_hash' - m_has_packages_for_distro.assert_has_calls( - [call('ceph_sha1', 'ubuntu', '14.04', 'default', {})], + m_package_version_for_hash.assert_has_calls( + [call('ceph_sha1', 'default', 'ubuntu', '14.04', 'machine_type')], ) y = { 'teuthology': { @@ -312,8 +261,6 @@ class TestScheduleSuite(object): @patch('teuthology.suite.util.find_git_parents') @patch('teuthology.suite.run.Run.schedule_jobs') - @patch('teuthology.suite.util.has_packages_for_distro') - @patch('teuthology.suite.util.get_package_versions') @patch('teuthology.suite.util.get_install_task_flavor') @patch('teuthology.suite.run.config_merge') @patch('teuthology.suite.run.build_matrix') @@ -330,14 +277,12 @@ class TestScheduleSuite(object): m_build_matrix, m_config_merge, m_get_install_task_flavor, - m_get_package_versions, - m_has_packages_for_distro, m_schedule_jobs, m_find_git_parents, ): m_get_arch.return_value = 'x86_64' m_git_validate_sha1.return_value = self.args.ceph_sha1 - m_package_version_for_hash.return_value = 'ceph_version' + m_package_version_for_hash.return_value = None m_git_ls_remote.return_value = 'suite_hash' build_matrix_desc = 'desc' build_matrix_frags = ['frag.yml'] @@ -347,10 +292,6 @@ class TestScheduleSuite(object): m_build_matrix.return_value = build_matrix_output m_config_merge.return_value = [(a, b, {}) for a, b in build_matrix_output] m_get_install_task_flavor.return_value = 'default' - m_get_package_versions.return_value = dict() - m_has_packages_for_distro.side_effect = [ - False for i in range(11) - ] m_find_git_parents.side_effect = lambda proj, sha1, count: [f"{sha1}_{i}" for i in range(11)] @@ -367,8 +308,6 @@ class TestScheduleSuite(object): @patch('teuthology.suite.util.find_git_parents') @patch('teuthology.suite.run.Run.schedule_jobs') @patch('teuthology.suite.run.Run.write_rerun_memo') - @patch('teuthology.suite.util.has_packages_for_distro') - @patch('teuthology.suite.util.get_package_versions') @patch('teuthology.suite.util.get_install_task_flavor') @patch('teuthology.suite.run.config_merge') @patch('teuthology.suite.run.build_matrix') @@ -385,8 +324,6 @@ class TestScheduleSuite(object): m_build_matrix, m_config_merge, m_get_install_task_flavor, - m_get_package_versions, - m_has_packages_for_distro, m_write_rerun_memo, m_schedule_jobs, m_find_git_parents, @@ -396,7 +333,6 @@ class TestScheduleSuite(object): # everything will run NUM_FAILS+1 times NUM_FAILS = 5 m_git_validate_sha1.return_value = self.args.ceph_sha1 - m_package_version_for_hash.return_value = 'ceph_version' m_git_ls_remote.return_value = 'suite_hash' build_matrix_desc = 'desc' build_matrix_frags = ['frag.yml'] @@ -406,10 +342,9 @@ class TestScheduleSuite(object): m_build_matrix.return_value = build_matrix_output m_config_merge.return_value = [(a, b, {}) for a, b in build_matrix_output] m_get_install_task_flavor.return_value = 'default' - m_get_package_versions.return_value = dict() # NUM_FAILS, then success - m_has_packages_for_distro.side_effect = \ - [False for i in range(NUM_FAILS)] + [True] + m_package_version_for_hash.side_effect = \ + [None for i in range(NUM_FAILS)] + ["ceph_version"] m_find_git_parents.side_effect = lambda proj, sha1, count: [f"{sha1}_{i}" for i in range(NUM_FAILS)] @@ -418,8 +353,8 @@ class TestScheduleSuite(object): runobj.base_args = list() count = runobj.schedule_suite() assert count == 1 - m_has_packages_for_distro.assert_has_calls( - [call(f"ceph_sha1_{i}", 'ubuntu', '14.04', 'default', {}) + m_package_version_for_hash.assert_has_calls( + [call(f"ceph_sha1_{i}", 'default', 'ubuntu', '14.04', 'machine_type') for i in range(NUM_FAILS)] ) m_find_git_parents.assert_has_calls( diff --git a/teuthology/suite/test/test_util.py b/teuthology/suite/test/test_util.py index e295010b85..042cdd1235 100644 --- a/teuthology/suite/test/test_util.py +++ b/teuthology/suite/test/test_util.py @@ -2,7 +2,6 @@ import os import pytest import tempfile -from copy import deepcopy from mock import Mock, patch from teuthology.config import config @@ -48,9 +47,6 @@ def git_repository(request): class TestUtil(object): - def setup_method(self): - config.use_shaman = False - @patch('teuthology.suite.util.smtplib.SMTP') def test_schedule_fail(self, m_smtp): config.results_email = "example@example.com" @@ -91,32 +87,6 @@ Branch 'no-branch' not found in repo: https://github.com/ceph/ceph-ci.git!" Branch 'no-branch' not found in repo: https://github.com/ceph/ceph-ci.git!" m_smtp.assert_not_called() - @patch('requests.get') - def test_get_hash_success(self, m_get): - mock_resp = Mock() - mock_resp.ok = True - mock_resp.text = "the_hash" - m_get.return_value = mock_resp - result = util.get_gitbuilder_hash() - assert result == "the_hash" - - @patch('requests.get') - def test_get_hash_fail(self, m_get): - mock_resp = Mock() - mock_resp.ok = False - m_get.return_value = mock_resp - result = util.get_gitbuilder_hash() - assert result is None - - @patch('requests.get') - def test_package_version_for_hash(self, m_get): - mock_resp = Mock() - mock_resp.ok = True - mock_resp.text = "the_version" - m_get.return_value = mock_resp - result = util.package_version_for_hash("hash") - assert result == "the_version" - @patch('requests.get') def test_get_branch_info(self, m_get): mock_resp = Mock() @@ -244,111 +214,34 @@ class TestFlavor(object): class TestMissingPackages(object): """ Tests the functionality that checks to see if a - scheduled job will have missing packages in gitbuilder. + scheduled job will have missing packages in shaman. """ - def setup_method(self): - package_versions = { - 'sha1': { - 'ubuntu': { - '14.04': { - 'basic': '1.0' - } - } - } - } - self.pv = package_versions - - def test_os_in_package_versions(self): - assert self.pv == util.get_package_versions( - "sha1", - "ubuntu", - "14.04", - "basic", - package_versions=self.pv - ) - - @patch("teuthology.suite.util.package_version_for_hash") - def test_os_not_in_package_versions(self, m_package_versions_for_hash): - m_package_versions_for_hash.return_value = "1.1" - result = util.get_package_versions( - "sha1", - "rhel", - "7.0", - "basic", - package_versions=self.pv - ) - expected = deepcopy(self.pv) - expected['sha1'].update( - { - 'rhel': { - '7.0': { - 'basic': '1.1' - } - } - } - ) - assert result == expected - - @patch("teuthology.suite.util.package_version_for_hash") - def test_package_versions_not_found(self, m_package_versions_for_hash): - # if gitbuilder returns a status that's not a 200, None is returned - m_package_versions_for_hash.return_value = None - result = util.get_package_versions( - "sha1", - "rhel", - "7.0", - "basic", - package_versions=self.pv - ) - assert result == self.pv - - @patch("teuthology.suite.util.package_version_for_hash") - def test_no_package_versions_kwarg(self, m_package_versions_for_hash): - m_package_versions_for_hash.return_value = "1.0" - result = util.get_package_versions( + @patch("teuthology.packaging.ShamanProject._get_package_version") + def test_distro_has_packages(self, m_gpv): + m_gpv.return_value = "v1" + result = util.package_version_for_hash( "sha1", - "ubuntu", - "14.04", "basic", - ) - expected = deepcopy(self.pv) - assert result == expected - - def test_distro_has_packages(self): - result = util.has_packages_for_distro( - "sha1", "ubuntu", "14.04", - "basic", - package_versions=self.pv, + "mtype", ) assert result - def test_distro_does_not_have_packages(self): - result = util.has_packages_for_distro( + @patch("teuthology.packaging.ShamanProject._get_package_version") + def test_distro_does_not_have_packages(self, m_gpv): + m_gpv.return_value = None + result = util.package_version_for_hash( "sha1", - "rhel", - "7.0", "basic", - package_versions=self.pv, - ) - assert not result - - @patch("teuthology.suite.util.get_package_versions") - def test_has_packages_no_package_versions(self, m_get_package_versions): - m_get_package_versions.return_value = self.pv - result = util.has_packages_for_distro( - "sha1", "rhel", "7.0", - "basic",) + "mtype", + ) assert not result class TestDistroDefaults(object): - def setup_method(self): - config.use_shaman = False - def test_distro_defaults_plana(self): expected = ('x86_64', 'ubuntu/22.04', OS(name='ubuntu', version='22.04', codename='jammy')) -- 2.39.5