def test_action_install_pattern_suse(self, shell_mock): sys.modules['rpm'] = MagicMock() sys.modules['rpm'].TransactionSet.return_value = MagicMock() sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_packagetest'}] with Environment('/') as env: Package("some_package*", ) self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
def test_action_install_suse(self, shell_mock, call_mock): call_mock.return_value = (1, None) with Environment('/') as env: Package("some_package", ) call_mock.assert_called_with('rpm -q --quiet some_package') shell_mock.assert_called_with( "/usr/bin/zypper --quiet install --auto-agree-with-licenses --no-confirm some_package" )
def test_action_install_pattern_suse(self, shell_mock, call_mock): call_mock.side_effect=[(0, None), (0, "Loading repository data...\nReading installed packages...\n\nS | Name\n--+-----\n | Pack")] with Environment('/') as env: Package("some_package*", ) call_mock.assert_has_calls([call("installed_pkgs=`rpm -qa 'some_package*'` ; [ ! -z \"$installed_pkgs\" ]"), call("zypper --non-interactive search --type package --uninstalled-only --match-exact 'some_package*'")]) shell_mock.assert_called_with(['/usr/bin/zypper', '--quiet', 'install', '--auto-agree-with-licenses', '--no-confirm', 'some_package*'], logoutput=False, sudo=True)
def test_action_install_existent_rhel(self, shell_mock): sys.modules['rpm'] = MagicMock() sys.modules['rpm'].TransactionSet.return_value = MagicMock() sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_package'}] with Environment('/') as env: Package("some_package", ) self.assertFalse(shell_mock.mock_calls)
def test_action_install_debian(self, shell_mock, call_mock): call_mock.return_value = (1, None) with Environment('/') as env: Package("some_package", ) call_mock.assert_called_with( 'dpkg --get-selections some_package | grep -v deinstall') shell_mock.assert_called_with( "/usr/bin/apt-get --force-yes --assume-yes install some_package")
def test_action_install_pattern_installed_rhel(self, shell_mock): sys.modules['yum'] = MagicMock() sys.modules['yum'].YumBase.return_value = MagicMock() sys.modules['yum'].YumBase.return_value.rpmdb = MagicMock() sys.modules['yum'].YumBase.return_value.rpmdb.simplePkgList.return_value = [('some_package_1_2_3',)] with Environment('/') as env: Package("some_package*", ) self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
def test_action_remove_nodeps_ubuntu(self, shell_mock): shell_mock.return_value = (0, '') with Environment('/') as env: Package("some-package", action = "remove", logoutput = False, ignore_dependencies = True ) shell_mock.assert_called_with(['/usr/bin/dpkg', '--remove', '--ignore-depends', 'some-package', 'some-package'], logoutput=False, sudo=True)
def test_action_remove_nodeps_suse(self, shell_mock): shell_mock.return_value = (0, '') with Environment('/') as env: Package("some_package", action = "remove", logoutput = False, ignore_dependencies = True ) shell_mock.assert_called_with(['rpm', '-e', '--nodeps', 'some_package'], logoutput=False, sudo=True)
def test_action_remove_suse(self, shell_mock): sys.modules['rpm'] = MagicMock() sys.modules['rpm'].TransactionSet.return_value = MagicMock() sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_package'}] with Environment('/') as env: Package("some_package", action = "remove" ) shell_mock.assert_called_with(['/usr/bin/zypper', '--quiet', 'remove', '--no-confirm', 'some_package'], logoutput=False, sudo=True)
def test_action_install_version_attr(self, shell_mock): with Environment('/') as env: Package("some_package", version="3.5.0") shell_mock.assert_called_with([ '/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install', 'some_package-3.5.0' ], logoutput=False, sudo=True)
def test_action_remove_suse(self, shell_mock): with Environment('/') as env: Package("some_package", action="remove") shell_mock.assert_called_with([ '/usr/bin/zypper', '--quiet', 'remove', '--no-confirm', 'some_package' ], logoutput=False, sudo=True)
def test_action_install_debian(self, shell_mock, call_mock): call_mock.return_value = (1, None) with Environment('/') as env: Package("some_package", ) call_mock.assert_called_with( 'dpkg --get-selections some_package | grep -v deinstall') shell_mock.assert_called_with( "env DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get -q -o Dpkg::Options::='--force-confdef' --force-yes --assume-yes install some_package" )
def test_action_install_rhel(self, shell_mock): sys.modules['rpm'] = MagicMock() sys.modules['rpm'].TransactionSet.return_value = MagicMock() sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_packag'}] with Environment('/') as env: Package("some_package", ) self.assertTrue(sys.modules['rpm'].TransactionSet.return_value.dbMatch.called) shell_mock.assert_called_with(['/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install', 'some_package'], logoutput=False, sudo=True)
def test_action_install_use_repos_rhel(self, shell_mock): shell_mock.return_value = (0,'') with Environment('/') as env: Package("some_package", use_repos={'HDP-UTILS-2.2.0.1-885': 'ambari-hdp-1', 'HDP-2.2.0.1-885': 'ambari-hdp-1'}, logoutput = False ) self.assertEquals(shell_mock.call_args[0][0], ['/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install', '--disablerepo=*', '--enablerepo=HDP-2.2.0.1-885,HDP-UTILS-2.2.0.1-885', 'some_package'])
def test_action_install_suse(self, shell_mock): shell_mock.return_value = (0,'') sys.modules['rpm'] = MagicMock() sys.modules['rpm'].TransactionSet.return_value = MagicMock() sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_packages'}] with Environment('/') as env: Package("some_package", logoutput = False ) shell_mock.assert_called_with(['/usr/bin/zypper', '--quiet', 'install', '--auto-agree-with-licenses', '--no-confirm', 'some_package'], logoutput=False, sudo=True)
def test_action_install_ubuntu(self, shell_mock, call_mock): call_mock.side_effect = [(1, None), (0, None)] with Environment('/') as env: Package("some_package", ) call_mock.assert_has_calls([call("dpkg --get-selections | grep -v deinstall | awk '{print $1}' | grep ^some-package$"), call(['/usr/bin/apt-get', '-q', '-o', 'Dpkg::Options::=--force-confdef', '--allow-unauthenticated', '--assume-yes', 'install', 'some-package'], logoutput=False, sudo=True, env={'DEBIAN_FRONTEND': 'noninteractive'})]) self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
def test_action_install_use_repos_rhel(self, shell_mock): with Environment('/') as env: Package("some_package", use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885']) self.assertEquals(shell_mock.call_args[0][0], [ '/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install', '--disablerepo=', '--enablerepo=HDP-UTILS-2.2.0.1-885,HDP-2.2.0.1-885', 'some_package' ])
def test_action_install_ubuntu(self, shell_mock, call_mock): call_mock.side_effect = [(1, ''), (0, '')] shell_mock.return_value = (0, '') with Environment('/') as env: Package("some_package", logoutput = False ) call_mock.assert_has_calls([call("dpkg --get-selections | grep -v deinstall | awk '{print $1}' | grep ^some-package$")]) shell_mock.assert_has_call([call(['/usr/bin/apt-get', '-q', '-o', 'Dpkg::Options::=--force-confdef', '--allow-unauthenticated', '--assume-yes', 'install', 'some-package'], logoutput=False, sudo=True, env={'DEBIAN_FRONTEND': 'noninteractive'})])
def install(self, env): Logger.info('Installing R Server Client...') tmp_dir = Script.tmp_dir Logger.debug('Using temp dir: {0}'.format(tmp_dir)) for rpm in rpms: Logger.info('Installing {0}'.format(rpm)) Package(rpm) Logger.info('Installed R Server')
def test_action_install_existent_rhel(self, shell_mock): sys.modules['yum'] = MagicMock() sys.modules['yum'].YumBase.return_value = MagicMock() sys.modules['yum'].YumBase.return_value.rpmdb = MagicMock() sys.modules[ 'yum'].YumBase.return_value.rpmdb.simplePkgList.return_value = [ ('some_package', ) ] with Environment('/') as env: Package("some_package", ) self.assertFalse(shell_mock.mock_calls)
def test_action_remove_nodeps_rhel(self, shell_mock): sys.modules['rpm'] = MagicMock() sys.modules['rpm'].TransactionSet.return_value = MagicMock() sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_package'}] with Environment('/') as env: Package("some_package", action = "remove", logoutput = False, ignore_dependencies = True ) shell_mock.assert_called_with(['rpm', '-e', '--nodeps', 'some_package'], logoutput=False, sudo=True)
def test_action_install_regex_ubuntu(self, shell_mock, call_mock): call_mock.side_effect = [(0, None)] with Environment('/') as env: Package("some_package.*", ) call_mock.assert_has_calls([ call( "dpkg --get-selections | grep -v deinstall | awk '{print $1}' | grep ^some-package.*$" ) ]) self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
def test_action_install_rhel(self, shell_mock, call_mock): call_mock.return_value = (1, None) with Environment('/') as env: #Package("some_package", #) #yuan Package("mongo-10gen-server", ) #end yuan call_mock.assert_called_with('rpm -q --quiet mongo-10gen-server') shell_mock.assert_called_with( "/usr/bin/yum -d 0 -e 0 -y install mongo-10gen-server")
def test_action_remove_rhel(self, shell_mock): sys.modules['rpm'] = MagicMock() sys.modules['rpm'].TransactionSet.return_value = MagicMock() sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [ { 'name': 'some_package' } ] with Environment('/') as env: Package("some_package", action="remove", logoutput=False) self.assertEquals(shell_mock.call_args_list[0][0][0], [ '/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'erase', 'some_package' ])
def test_action_install_rhel(self, shell_mock, call_mock): call_mock.return_value = (1, None) with Environment('/') as env: Package("some_package", ) call_mock.assert_called_with( "installed_pkgs=`rpm -qa 'some_package'` ; [ ! -z \"$installed_pkgs\" ]" ) shell_mock.assert_called_with([ '/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install', 'some_package' ], logoutput=False, sudo=True)
def test_action_install_debian(self, shell_mock, call_mock): call_mock.side_effect = [(1, None), (0, None)] with Environment('/') as env: Package("some_package", ) call_mock.assert_has_calls([ call("dpkg --get-selections some_package | grep -v deinstall"), call( "DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get -q -o Dpkg::Options::='--force-confdef'" " --allow-unauthenticated --assume-yes install some_package") ]) self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
def test_action_install_pattern_installed_rhel(self, shell_mock, call_mock): call_mock.side_effect = [(0, None), (0, "Some text")] with Environment('/') as env: Package("some_package*", ) call_mock.assert_has_calls([ call( "installed_pkgs=`rpm -qa 'some_package*'` ; [ ! -z \"$installed_pkgs\" ]" ), call("! yum list available 'some_package*'") ]) self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
def test_action_install_suse(self, shell_mock, call_mock): call_mock.return_value = (1, None) with Environment('/') as env: Package("some_package", ) call_mock.assert_called_with( "installed_pkgs=`rpm -qa 'some_package'` ; [ ! -z \"$installed_pkgs\" ]" ) shell_mock.assert_called_with([ '/usr/bin/zypper', '--quiet', 'install', '--auto-agree-with-licenses', '--no-confirm', 'some_package' ], logoutput=False, sudo=True)
def test_action_remove_rhel(self, shell_mock): sys.modules['yum'] = MagicMock() sys.modules['yum'].YumBase.return_value = MagicMock() sys.modules['yum'].YumBase.return_value.rpmdb = MagicMock() sys.modules[ 'yum'].YumBase.return_value.rpmdb.simplePkgList.return_value = [ ('some_package', ) ] with Environment('/') as env: Package("some_package", action="remove") shell_mock.assert_called_with([ '/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'erase', 'some_package' ], logoutput=False, sudo=True)
def test_action_install_pattern_rhel(self, shell_mock, call_mock): call_mock.side_effect = [(0, None), (1, "Some text")] with Environment('/') as env: Package("some_package*", ) call_mock.assert_has_calls([ call( "installed_pkgs=`rpm -qa 'some_package*'` ; [ ! -z \"$installed_pkgs\" ]" ), call("! yum list available 'some_package*'") ]) shell_mock.assert_called_with([ '/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install', 'some_package*' ], logoutput=False, sudo=True)