From 7c6a92be41315e7a9e796e08e3073b5621f21187 Mon Sep 17 00:00:00 2001 From: Andrew Schoen Date: Fri, 31 Jul 2015 16:06:06 -0500 Subject: [PATCH] remove the need for teuthology.misc in teuthology.packaging It's best to get the package type from remote.os.package_type. This also fixes a circular import that will allows me to import teuthology.packaging into teuthology.misc Signed-off-by: Andrew Schoen --- teuthology/packaging.py | 9 ++-- teuthology/test/test_packaging.py | 80 +++++++++++++++---------------- 2 files changed, 42 insertions(+), 47 deletions(-) diff --git a/teuthology/packaging.py b/teuthology/packaging.py index 2a7d1c0fe1..38a7899c0b 100644 --- a/teuthology/packaging.py +++ b/teuthology/packaging.py @@ -5,7 +5,6 @@ import requests from cStringIO import StringIO -from teuthology import misc from .config import config log = logging.getLogger(__name__) @@ -53,7 +52,7 @@ def get_package_name(pkg, rem): """ Find the remote-specific name of the generic 'pkg' """ - flavor = misc.get_system_type(rem) + flavor = rem.os.package_type try: return _PACKAGE_MAP[pkg][flavor] @@ -65,7 +64,7 @@ def get_service_name(service, rem): """ Find the remote-specific name of the generic 'service' """ - flavor = misc.get_system_type(rem) + flavor = rem.os.package_type try: return _SERVICE_MAP[service][flavor] except KeyError: @@ -78,7 +77,7 @@ def install_package(package, remote): Assumes repo has already been set up (perhaps with install_repo) """ log.info('Installing package %s on %s', package, remote) - flavor = misc.get_system_type(remote) + flavor = remote.os.package_type if flavor == 'deb': pkgcmd = ['DEBIAN_FRONTEND=noninteractive', 'sudo', @@ -103,7 +102,7 @@ def remove_package(package, remote): """ Remove package from remote """ - flavor = misc.get_system_type(remote) + flavor = remote.os.package_type if flavor == 'deb': pkgcmd = ['DEBIAN_FRONTEND=noninteractive', 'sudo', diff --git a/teuthology/test/test_packaging.py b/teuthology/test/test_packaging.py index a7b06d78d6..65f95987bd 100644 --- a/teuthology/test/test_packaging.py +++ b/teuthology/test/test_packaging.py @@ -28,40 +28,39 @@ KOJI_TASK_RPMS = [rpm[0] for rpm in KOJI_TASK_RPMS_MATRIX] class TestPackaging(object): - @patch("teuthology.packaging.misc") - def test_get_package_name_deb(self, m_misc): - m_misc.get_system_type.return_value = "deb" - assert packaging.get_package_name('sqlite', Mock()) == "sqlite3" - - @patch("teuthology.packaging.misc") - def test_get_package_name_rpm(self, m_misc): - m_misc.get_system_type.return_value = "rpm" - assert packaging.get_package_name('sqlite', Mock()) is None - - @patch("teuthology.packaging.misc") - def test_get_package_name_not_found(self, m_misc): - m_misc.get_system_type.return_value = "rpm" - assert packaging.get_package_name('notthere', Mock()) is None - - @patch("teuthology.packaging.misc") - def test_get_service_name_deb(self, m_misc): - m_misc.get_system_type.return_value = "deb" - assert packaging.get_service_name('httpd', Mock()) == 'apache2' - - @patch("teuthology.packaging.misc") - def test_get_service_name_rpm(self, m_misc): - m_misc.get_system_type.return_value = "rpm" - assert packaging.get_service_name('httpd', Mock()) == 'httpd' - - @patch("teuthology.packaging.misc") - def test_get_service_name_not_found(self, m_misc): - m_misc.get_system_type.return_value = "rpm" - assert packaging.get_service_name('notthere', Mock()) is None - - @patch("teuthology.packaging.misc") - def test_install_package_deb(self, m_misc): - m_misc.get_system_type.return_value = "deb" + def test_get_package_name_deb(self): + remote = Mock() + remote.os.package_type = "deb" + assert packaging.get_package_name('sqlite', remote) == "sqlite3" + + def test_get_package_name_rpm(self): + remote = Mock() + remote.os.package_type = "rpm" + assert packaging.get_package_name('sqlite', remote) is None + + def test_get_package_name_not_found(self): + remote = Mock() + remote.os.package_type = "rpm" + assert packaging.get_package_name('notthere', remote) is None + + def test_get_service_name_deb(self): + remote = Mock() + remote.os.package_type = "deb" + assert packaging.get_service_name('httpd', remote) == 'apache2' + + def test_get_service_name_rpm(self): + remote = Mock() + remote.os.package_type = "rpm" + assert packaging.get_service_name('httpd', remote) == 'httpd' + + def test_get_service_name_not_found(self): + remote = Mock() + remote.os.package_type = "rpm" + assert packaging.get_service_name('notthere', remote) is None + + def test_install_package_deb(self): m_remote = Mock() + m_remote.os.package_type = "deb" expected = [ 'DEBIAN_FRONTEND=noninteractive', 'sudo', @@ -74,10 +73,9 @@ class TestPackaging(object): packaging.install_package('apache2', m_remote) m_remote.run.assert_called_with(args=expected) - @patch("teuthology.packaging.misc") - def test_install_package_rpm(self, m_misc): - m_misc.get_system_type.return_value = "rpm" + def test_install_package_rpm(self): m_remote = Mock() + m_remote.os.package_type = "rpm" expected = [ 'sudo', 'yum', @@ -88,10 +86,9 @@ class TestPackaging(object): packaging.install_package('httpd', m_remote) m_remote.run.assert_called_with(args=expected) - @patch("teuthology.packaging.misc") - def test_remove_package_deb(self, m_misc): - m_misc.get_system_type.return_value = "deb" + def test_remove_package_deb(self): m_remote = Mock() + m_remote.os.package_type = "deb" expected = [ 'DEBIAN_FRONTEND=noninteractive', 'sudo', @@ -104,10 +101,9 @@ class TestPackaging(object): packaging.remove_package('apache2', m_remote) m_remote.run.assert_called_with(args=expected) - @patch("teuthology.packaging.misc") - def test_remove_package_rpm(self, m_misc): - m_misc.get_system_type.return_value = "rpm" + def test_remove_package_rpm(self): m_remote = Mock() + m_remote.os.package_type = "rpm" expected = [ 'sudo', 'yum', -- 2.39.5