示例#1
0
 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)
示例#3
0
 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)
示例#4
0
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))
示例#6
0
    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)
示例#8
0
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
示例#9
0
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))