def test_install_list_pkgs(self): ''' Test installing a list of packages ''' pkg_list_pre = { 'pkg://solaris/compress/bzip2': '1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z', 'pkg://solaris/compress/gzip': '1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z', 'pkg://solaris/compress/p7zip': '16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z', } pkg_list_post = { 'pkg://solaris/compress/bzip2': '1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z', 'pkg://solaris/compress/gzip': '1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z', 'pkg://solaris/compress/p7zip': '16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z', 'pkg://solaris/text/less': '458,5.11-0.175.3.0.0.30.0:20150821T172730Z', 'pkg://solaris/system/library/security/libsasl': '0.5.11,5.11-0.175.3.32.0.1.0:20180406T191209Z', } install_cmd = { 'pid': 1234, 'retcode': 0, 'stderr': '', 'stdout': '', } mock_install_cmd = MagicMock(return_value=install_cmd) list_pkgs_responses = [pkg_list_pre, pkg_list_post] with patch.object(solarisips, 'is_installed', return_value=False), \ patch.object(solarisips, 'list_pkgs', side_effect=list_pkgs_responses), \ patch.dict(solarisips.__salt__, {'cmd.run_all': mock_install_cmd}): result = solarisips.install(pkgs=['less', 'libsasl'], refresh=False) self.assertEqual(result, salt.utils.data.compare_dicts(pkg_list_pre, pkg_list_post))
def test_install_already_installed_single_pkg(self): """ Test installing a package that is already installed """ result = None expected_result = {} with patch.object(solarisips, "is_installed", return_value=True): result = solarisips.install(name="less") self.assertEqual(result, expected_result)
def test_install_already_installed_single_pkg(self): ''' Test installing a package that is already installed ''' result = None expected_result = 'Package already installed.' with patch.object(solarisips, 'is_installed', return_value=True): result = solarisips.install(name='less') self.assertEqual(result, expected_result)
def test_install_dict_pkgs_with_version(): """ Test installing a list of packages in a dict with versions """ install_target = [ { "tree": "1.7.0-11.4.0.0.1.14.0:20180814T163602Z" }, { "xclock": "1.0.7-11.4.0.0.1.14.0:20180814T173537Z" }, ] cmd_out = { "retcode": 0, "stdout": "", "stderr": "", } run_all_mock = MagicMock(return_value=cmd_out) patches = { "cmd.run_all": run_all_mock, "solarisipspkg.is_installed": MagicMock(return_value=False), "cmd.retcode": MagicMock(return_value=False), } with patch.dict(solarisipspkg.__salt__, patches): with patch("salt.modules.solarisipspkg.list_pkgs", ListPackagesDict()), patch( "salt.modules.solarisipspkg.is_installed", MagicMock(return_value=False)): added = solarisipspkg.install(pkgs=install_target, refresh=False) expected = { "pkg://solaris/file/tree": { "new": "1.7.0-11.4.0.0.1.14.0:20180814T163602Z", "old": "", }, "pkg://solaris/x11/xclock": { "new": "1.0.7-11.4.0.0.1.14.0:20180814T173537Z", "old": "", }, } assert added == expected list_first = (tuple(install_target[0].keys())[0] + "@1.7.0-11.4.0.0.1.14.0:20180814T163602Z") list_second = (tuple(install_target[1].keys())[0] + "@1.0.7-11.4.0.0.1.14.0:20180814T173537Z") expected_calls = [ call( ["pkg", "install", "-v", "--accept", list_first, list_second], output_loglevel="trace", ), ] run_all_mock.assert_has_calls(expected_calls, any_order=True) assert run_all_mock.call_count == 1
def test_install_dict_pkgs_with_version(self): """ Test installing a list of packages """ pkg_list_pre = { "pkg://solaris/compress/bzip2": "1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z", "pkg://solaris/compress/gzip": "1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z", "pkg://solaris/compress/p7zip": "16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z", } pkg_list_post = { "pkg://solaris/compress/bzip2": "1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z", "pkg://solaris/compress/gzip": "1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z", "pkg://solaris/compress/p7zip": "16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z", "pkg://solaris/text/less": "458,5.11-0.175.3.0.0.30.0:20150821T172730Z", "pkg://solaris/system/library/security/libsasl": "0.5.11,5.11-0.175.3.32.0.1.0:20180406T191209Z", } install_cmd = { "pid": 1234, "retcode": 0, "stderr": "", "stdout": "", } mock_install_cmd = MagicMock(return_value=install_cmd) list_pkgs_responses = [pkg_list_pre, pkg_list_post] with patch.object(solarisips, "is_installed", return_value=False), patch.object( solarisips, "list_pkgs", side_effect=list_pkgs_responses), patch.dict( solarisips.__salt__, {"cmd.run_all": mock_install_cmd}): result = solarisips.install( pkgs=[ { "less": "458,5.11-0.175.3.0.0.30.0:20150821T172730Z" }, { "libsasl": "0.5.11,5.11-0.175.3.32.0.1.0:20180406T191209Z" }, ], refresh=False, ) self.assertEqual( result, salt.utils.data.compare_dicts(pkg_list_pre, pkg_list_post))
def test_install_dict_pkgs_with_version_validate_cmd(self): ''' Test installing a list of packages ''' def check_param(arg, **kwargs): self.assertEqual(arg, [ 'pkg', 'install', '-v', '--accept', 'less@458,5.11-0.175.3.0.0.30.0:20150821T172730Z', '[email protected],5.11-0.175.3.32.0.1.0:20180406T191209Z' ]) return { 'pid': 1234, 'retcode': 0, 'stderr': '', 'stdout': '', } pkg_list_pre = { 'pkg://solaris/compress/bzip2': '1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z', 'pkg://solaris/compress/gzip': '1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z', 'pkg://solaris/compress/p7zip': '16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z', } pkg_list_post = { 'pkg://solaris/compress/bzip2': '1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z', 'pkg://solaris/compress/gzip': '1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z', 'pkg://solaris/compress/p7zip': '16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z', 'pkg://solaris/text/less': '458,5.11-0.175.3.0.0.30.0:20150821T172730Z', 'pkg://solaris/system/library/security/libsasl': '0.5.11,5.11-0.175.3.32.0.1.0:20180406T191209Z', } mock_install_cmd = MagicMock(side_effect=check_param) list_pkgs_responses = [pkg_list_pre, pkg_list_post] with patch.object(solarisips, 'is_installed', return_value=False), \ patch.object(solarisips, 'list_pkgs', side_effect=list_pkgs_responses): with patch.dict(solarisips.__salt__, {'cmd.run_all': mock_install_cmd}): result = solarisips.install(pkgs=[{ 'less': '458,5.11-0.175.3.0.0.30.0:20150821T172730Z' }, { 'libsasl': '0.5.11,5.11-0.175.3.32.0.1.0:20180406T191209Z' }], refresh=False)
def test_install_dict_pkgs_no_version_validate_cmd(self): """ Test installing a list of packages """ def check_param(arg, **kwargs): self.assertEqual( arg, ["pkg", "install", "-v", "--accept", "less", "libsasl"]) return { "pid": 1234, "retcode": 0, "stderr": "", "stdout": "", } pkg_list_pre = { "pkg://solaris/compress/bzip2": "1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z", "pkg://solaris/compress/gzip": "1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z", "pkg://solaris/compress/p7zip": "16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z", } pkg_list_post = { "pkg://solaris/compress/bzip2": "1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z", "pkg://solaris/compress/gzip": "1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z", "pkg://solaris/compress/p7zip": "16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z", "pkg://solaris/text/less": "458,5.11-0.175.3.0.0.30.0:20150821T172730Z", "pkg://solaris/system/library/security/libsasl": "0.5.11,5.11-0.175.3.32.0.1.0:20180406T191209Z", } mock_install_cmd = MagicMock(side_effect=check_param) list_pkgs_responses = [pkg_list_pre, pkg_list_post] with patch.object(solarisips, "is_installed", return_value=False), patch.object( solarisips, "list_pkgs", side_effect=list_pkgs_responses): with patch.dict(solarisips.__salt__, {"cmd.run_all": mock_install_cmd}): result = solarisips.install(pkgs=[{ "less": "" }, { "libsasl": "" }], refresh=False)
def test_install_already_installed_single_pkg(): """ Test installing a package that is already installed """ result = None expected_result = {} install_target = "compress/zip" patches = { "solarisipspkg.is_installed": MagicMock(return_value=True), "cmd.retcode": MagicMock(return_value=False), } with patch.dict(solarisipspkg.__salt__, patches): result = solarisipspkg.install(install_target) assert result == expected_result
def test_install_single_named_package(): """ Test installing a single package - a single package pkg://solaris/compress/zip 3.0-11.4.0.0.1.14.0:20180814T153154Z """ install_target = "compress/zip" cmd_out = { "retcode": 0, "stdout": "", "stderr": "", } run_all_mock = MagicMock(return_value=cmd_out) patches = { "cmd.run_all": run_all_mock, "solarisipspkg.is_installed": MagicMock(return_value=False), "cmd.retcode": MagicMock(return_value=False), } with patch.dict(solarisipspkg.__salt__, patches): with patch("salt.modules.solarisipspkg.list_pkgs", ListPackages()), patch( "salt.modules.solarisipspkg.is_installed", MagicMock(return_value=False)): added = solarisipspkg.install(install_target, refresh=False) expected = { "pkg://solaris/compress/zip": { "new": "3.0-11.4.0.0.1.14.0:20180814T153154Z", "old": "", } } assert added == expected expected_calls = [ call( ["pkg", "install", "-v", "--accept", install_target], output_loglevel="trace", ), ] run_all_mock.assert_has_calls(expected_calls, any_order=True) assert run_all_mock.call_count == 1
def test_install_single_package(self): """ Test installing a single package """ pkg_list_pre = { "pkg://solaris/compress/bzip2": ("1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z"), "pkg://solaris/compress/gzip": "1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z", "pkg://solaris/compress/p7zip": ("16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z"), } pkg_list_post = { "pkg://solaris/compress/bzip2": ("1.0.6,5.11-0.175.3.10.0.4.0:20160630T215500Z"), "pkg://solaris/compress/gzip": "1.5,5.11-0.175.3.0.0.30.0:20150821T161446Z", "pkg://solaris/compress/p7zip": ("16.2.3,5.11-0.175.3.34.0.2.0:20180614T204908Z"), "pkg://solaris/text/less": "458,5.11-0.175.3.0.0.30.0:20150821T172730Z", } install_cmd = { "pid": 1234, "retcode": 0, "stderr": "", "stdout": "", } mock_install_cmd = MagicMock(return_value=install_cmd) list_pkgs_responses = [pkg_list_pre, pkg_list_post] with patch.object(solarisips, "is_installed", return_value=False), patch.object( solarisips, "list_pkgs", side_effect=list_pkgs_responses), patch.dict( solarisips.__salt__, {"cmd.run_all": mock_install_cmd}): result = solarisips.install(name="less", refresh=False) self.assertEqual( result, salt.utils.data.compare_dicts(pkg_list_pre, pkg_list_post))