Esempio n. 1
0
    def test_get_pkg_id_with_dir(self):
        """
            Test getting a the id for a package with a directory
        """
        with patch(
                "salt.modules.macpackage._get_pkg_id_dir") as pkg_id_dir_mock:
            expected = ["com.apple.this"]
            pkg_id_dir_mock.return_value = ["com.apple.this"]
            cmd_mock = MagicMock(
                return_value="Error opening /path/to/file.pkg")
            temp_mock = MagicMock(return_value="/tmp/dmg-ABCDEF")
            remove_mock = MagicMock()

            with patch.dict(
                    macpackage.__salt__,
                {
                    "cmd.run": cmd_mock,
                    "temp.dir": temp_mock,
                    "file.remove": remove_mock,
                },
            ):
                out = macpackage.get_pkg_id("/path/to/file.pkg")

                temp_mock.assert_called_once_with(prefix="pkg-")
                cmd_mock.assert_called_once_with(
                    "xar -t -f /path/to/file.pkg | grep PackageInfo",
                    python_shell=True,
                    output_loglevel="quiet",
                )
                pkg_id_dir_mock.assert_called_once_with("/path/to/file.pkg")
                remove_mock.assert_called_once_with("/tmp/dmg-ABCDEF")

                self.assertEqual(out, expected)
Esempio n. 2
0
    def test_get_pkg_id_with_dir(self):
        '''
            Test getting a the id for a package with a directory
        '''
        with patch(
                'salt.modules.macpackage._get_pkg_id_dir') as pkg_id_dir_mock:
            expected = ['com.apple.this']
            pkg_id_dir_mock.return_value = ['com.apple.this']
            cmd_mock = MagicMock(
                return_value='Error opening /path/to/file.pkg')
            temp_mock = MagicMock(return_value='/tmp/dmg-ABCDEF')
            remove_mock = MagicMock()

            with patch.dict(
                    macpackage.__salt__, {
                        'cmd.run': cmd_mock,
                        'temp.dir': temp_mock,
                        'file.remove': remove_mock
                    }):
                out = macpackage.get_pkg_id('/path/to/file.pkg')

                temp_mock.assert_called_once_with(prefix='pkg-')
                cmd_mock.assert_called_once_with(
                    'xar -t -f /path/to/file.pkg | grep PackageInfo',
                    python_shell=True,
                    output_loglevel='quiet')
                pkg_id_dir_mock.assert_called_once_with('/path/to/file.pkg')
                remove_mock.assert_called_once_with('/tmp/dmg-ABCDEF')

                self.assertEqual(out, expected)
Esempio n. 3
0
def test_get_pkg_id_with_files():
    """
    Test getting a the id for a package
    """
    with patch(
        "salt.modules.macpackage._get_pkg_id_from_pkginfo"
    ) as pkg_id_pkginfo_mock:
        expected = ["com.apple.this"]
        cmd_mock = MagicMock(
            side_effect=[
                "/path/to/PackageInfo\n/path/to/some/other/fake/PackageInfo",
                "",
                "",
            ]
        )
        pkg_id_pkginfo_mock.side_effect = [["com.apple.this"], []]
        temp_mock = MagicMock(return_value="/tmp/dmg-ABCDEF")
        remove_mock = MagicMock()

        with patch.dict(
            macpackage.__salt__,
            {
                "cmd.run": cmd_mock,
                "temp.dir": temp_mock,
                "file.remove": remove_mock,
            },
        ):
            out = macpackage.get_pkg_id("/path/to/file.pkg")

            temp_mock.assert_called_once_with(prefix="pkg-")
            cmd_calls = [
                call(
                    "xar -t -f /path/to/file.pkg | grep PackageInfo",
                    python_shell=True,
                    output_loglevel="quiet",
                ),
                call(
                    "xar -x -f /path/to/file.pkg /path/to/PackageInfo"
                    " /path/to/some/other/fake/PackageInfo",
                    cwd="/tmp/dmg-ABCDEF",
                    output_loglevel="quiet",
                ),
            ]
            cmd_mock.assert_has_calls(cmd_calls)

            pkg_id_pkginfo_calls = [
                call("/path/to/PackageInfo"),
                call("/path/to/some/other/fake/PackageInfo"),
            ]
            pkg_id_pkginfo_mock.assert_has_calls(pkg_id_pkginfo_calls)
            remove_mock.assert_called_once_with("/tmp/dmg-ABCDEF")

            assert out == expected
Esempio n. 4
0
    def test_get_pkg_id_with_files(self):
        '''
            Test getting a the id for a package
        '''
        with patch('salt.modules.macpackage._get_pkg_id_from_pkginfo'
                   ) as pkg_id_pkginfo_mock:
            expected = ['com.apple.this']
            cmd_mock = MagicMock(side_effect=[
                '/path/to/PackageInfo\n/path/to/some/other/fake/PackageInfo',
                '', ''
            ])
            pkg_id_pkginfo_mock.side_effect = [['com.apple.this'], []]
            temp_mock = MagicMock(return_value='/tmp/dmg-ABCDEF')
            remove_mock = MagicMock()

            with patch.dict(
                    macpackage.__salt__, {
                        'cmd.run': cmd_mock,
                        'temp.dir': temp_mock,
                        'file.remove': remove_mock
                    }):
                out = macpackage.get_pkg_id('/path/to/file.pkg')

                temp_mock.assert_called_once_with(prefix='pkg-')
                cmd_calls = [
                    call('xar -t -f /path/to/file.pkg | grep PackageInfo',
                         python_shell=True,
                         output_loglevel='quiet'),
                    call(
                        'xar -x -f /path/to/file.pkg /path/to/PackageInfo /path/to/some/other/fake/PackageInfo',
                        cwd='/tmp/dmg-ABCDEF',
                        output_loglevel='quiet')
                ]
                cmd_mock.assert_has_calls(cmd_calls)

                pkg_id_pkginfo_calls = [
                    call('/path/to/PackageInfo'),
                    call('/path/to/some/other/fake/PackageInfo')
                ]
                pkg_id_pkginfo_mock.assert_has_calls(pkg_id_pkginfo_calls)
                remove_mock.assert_called_once_with('/tmp/dmg-ABCDEF')

                self.assertEqual(out, expected)