Example #1
0
def test_installed_no_updates():
    """
    Test installed when there are no updates on the system
    """
    with patch("salt.utils.winapi.Com", autospec=True), patch(
            "win32com.client.Dispatch",
            autospec=True), patch.object(win_update.WindowsUpdateAgent,
                                         "refresh",
                                         autospec=True):
        wua = win_update.WindowsUpdateAgent(online=False)
        wua._updates = []

        installed_updates = wua.installed()

        assert installed_updates.updates.Add.call_count == 0
Example #2
0
def test_installed_updates_all_installed():
    """
    Test installed when all updates on the system are Installed
    """
    with patch("salt.utils.winapi.Com", autospec=True), patch(
            "win32com.client.Dispatch",
            autospec=True), patch.object(win_update.WindowsUpdateAgent,
                                         "refresh",
                                         autospec=True):
        wua = win_update.WindowsUpdateAgent(online=False)

        wua._updates = [
            MagicMock(IsInstalled=True),
            MagicMock(IsInstalled=True),
            MagicMock(IsInstalled=True),
        ]

        installed_updates = wua.installed()

        assert installed_updates.updates.Add.call_count == 3
Example #3
0
    def test_uptodate_test_mode(self):
        """
        Test uptodate function in test=true mode.
        """
        expected = {
            "name": "NA",
            "changes": {},
            "result": None,
            "comment": "Updates will be installed:",
        }
        patch_winapi_com = patch("salt.utils.winapi.Com", autospec=True)
        patch_win32com = patch("win32com.client.Dispatch", autospec=True)
        patch_win_update_agent = patch.object(
            salt.utils.win_update.WindowsUpdateAgent, "refresh", autospec=True)
        patch_opts = patch.dict(win_wua.__opts__, {"test": True})

        with patch_winapi_com, patch_win32com, patch_win_update_agent, patch_opts:
            wua = win_update.WindowsUpdateAgent(online=False)
            wua._updates = [MagicMock(IsInstalled=False, IsDownloaded=False)]
            result = win_wua.uptodate(name="NA")
            self.assertDictEqual(result, expected)
Example #4
0
    def test_uptodate(self):
        """
        Test uptodate function with some updates found.
        """
        expected = {
            "name": "NA",
            "changes": {
                "failed": {
                    "eac02b09-d745-4891-b80f-400e0e5e4b6d": {
                        "Title": "Blank...",
                        "KBs": ["KB4052623"],
                    }
                }
            },
            "result": False,
            "comment": "Updates failed",
        }

        updates_not_installed = {
            "afda9e11-44a0-4602-9e9b-423af11ecaed": {
                "KBs": ["KB4541329"],
                "Installed": False,
                "Title": "Blank",
            },
            "a0f997b1-1abe-4a46-941f-b37f732f9fbd": {
                "KBs": ["KB3193497"],
                "Installed": False,
                "Title": "Blank",
            },
            "eac02b09-d745-4891-b80f-400e0e5e4b6d": {
                "KBs": ["KB4052623"],
                "Installed": False,
                "Title": "Blank",
            },
            "eac02c07-d744-4892-b80f-312d045e4ccc": {
                "KBs": ["KB4052444"],
                "Installed": False,
                "Title": "Blank",
            },
        }
        fake_wua = MagicMock()
        fake_updates = MagicMock()
        fake_updates.list.return_value = updates_not_installed

        fake_wua_updates = MagicMock()
        fake_wua_updates.list.return_value = UPDATES_LIST
        fake_wua.updates.return_value = fake_wua_updates

        patch_winapi_com = patch("salt.utils.winapi.Com", autospec=True)
        patch_win32 = patch("win32com.client.Dispatch", autospec=True)
        patch_wua = patch(
            "salt.utils.win_update.WindowsUpdateAgent",
            autospec=True,
            return_value=fake_wua,
        )
        patch_win_wua_update = patch("salt.utils.win_update.Updates",
                                     autospec=True,
                                     return_value=fake_updates)
        patch_opts = patch.dict(win_wua.__opts__, {"test": False})

        with patch_winapi_com, patch_win32, patch_wua, patch_win_wua_update, patch_opts:
            wua = win_update.WindowsUpdateAgent(online=False)
            result = win_wua.uptodate(name="NA")
            self.assertDictEqual(result, expected)