123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- # -*- coding: utf-8 -*-
- # Import Python libs
- from __future__ import absolute_import
- import textwrap
- # Import Salt Libs
- import salt.modules.pkgng as pkgng
- # Import Salt Testing Libs
- from tests.support.mixins import LoaderModuleMockMixin
- from tests.support.mock import MagicMock, patch
- from tests.support.unit import TestCase
- class PkgNgTestCase(TestCase, LoaderModuleMockMixin):
- """
- Test cases for salt.modules.pkgng
- """
- @classmethod
- def setup_loader_modules(cls):
- return {pkgng: {"__salt__": {}}}
- def test_lock(self):
- """
- Test pkgng.lock
- """
- lock_cmd = MagicMock(
- return_value={"stdout": ("pkga-1.0\n" "pkgb-2.0\n"), "retcode": 0}
- )
- with patch.dict(pkgng.__salt__, {"cmd.run_all": lock_cmd}):
- result = pkgng.lock("pkga")
- self.assertTrue(result)
- lock_cmd.assert_called_with(
- ["pkg", "lock", "-y", "--quiet", "--show-locked", "pkga"],
- output_loglevel="trace",
- python_shell=False,
- )
- result = pkgng.lock("dummy")
- self.assertFalse(result)
- lock_cmd.assert_called_with(
- ["pkg", "lock", "-y", "--quiet", "--show-locked", "dummy"],
- output_loglevel="trace",
- python_shell=False,
- )
- def test_unlock(self):
- """
- Test pkgng.unlock
- """
- unlock_cmd = MagicMock(
- return_value={"stdout": ("pkga-1.0\n" "pkgb-2.0\n"), "retcode": 0}
- )
- with patch.dict(pkgng.__salt__, {"cmd.run_all": unlock_cmd}):
- result = pkgng.unlock("pkga")
- self.assertFalse(result)
- unlock_cmd.assert_called_with(
- ["pkg", "unlock", "-y", "--quiet", "--show-locked", "pkga"],
- output_loglevel="trace",
- python_shell=False,
- )
- result = pkgng.unlock("dummy")
- self.assertTrue(result)
- unlock_cmd.assert_called_with(
- ["pkg", "unlock", "-y", "--quiet", "--show-locked", "dummy"],
- output_loglevel="trace",
- python_shell=False,
- )
- def test_locked(self):
- """
- Test pkgng.unlock
- """
- lock_cmd = MagicMock(
- return_value={"stdout": ("pkga-1.0\n" "pkgb-2.0\n"), "retcode": 0}
- )
- with patch.dict(pkgng.__salt__, {"cmd.run_all": lock_cmd}):
- result = pkgng.locked("pkga")
- self.assertTrue(result)
- lock_cmd.assert_called_with(
- ["pkg", "lock", "-y", "--quiet", "--show-locked"],
- output_loglevel="trace",
- python_shell=False,
- )
- result = pkgng.locked("dummy")
- self.assertFalse(result)
- lock_cmd.assert_called_with(
- ["pkg", "lock", "-y", "--quiet", "--show-locked"],
- output_loglevel="trace",
- python_shell=False,
- )
- def test_list_upgrades_present(self):
- """
- Test pkgng.list_upgrades with upgrades available
- """
- pkg_cmd = MagicMock(
- return_value=textwrap.dedent(
- """
- The following 6 package(s) will be affected (of 0 checked):
- Installed packages to be UPGRADED:
- pkga: 1.0 -> 1.1
- pkgb: 2.0 -> 2.1 [FreeBSD]
- pkgc: 3.0 -> 3.1 [FreeBSD] (dependency changed)
- pkgd: 4.0 -> 4.1 (dependency changed)
- New packages to be INSTALLED:
- pkge: 1.0
- pkgf: 2.0 [FreeBSD]
- pkgg: 3.0 [FreeBSD] (dependency changed)
- pkgh: 4.0 (dependency changed)
- Installed packages to be REINSTALLED:
- pkgi-1.0
- pkgj-2.0 [FreeBSD]
- pkgk-3.0 [FreeBSD] (direct dependency changed: pkga)
- pkgl-4.0 (direct dependency changed: pkgb)
- Installed packages to be DOWNGRADED:
- pkgm: 1.1 -> 1.0
- pkgn: 2.1 -> 2.0 [FreeBSD]
- pkgo: 3.1 -> 3.0 [FreeBSD] (dependency changed)
- pkgp: 4.1 -> 4.0 (dependency changed)
- Installed packages to be REMOVED:
- pkgq-1.0
- pkgr-2.0 [FreeBSD]
- pkgs-3.0 [FreeBSD] (direct dependency changed: pkga)
- pkgt-4.0 (direct dependency changed: pkgb)
- Number of packages to be upgraded: 2
- Number of packages to be reinstalled: 2
- The process will require 14 MiB more space.
- 22 MiB to be downloaded.
- """
- )
- )
- with patch.dict(pkgng.__salt__, {"cmd.run_stdout": pkg_cmd}):
- result = pkgng.list_upgrades(refresh=False)
- self.assertDictEqual(
- result, {"pkga": "1.1", "pkgb": "2.1", "pkgc": "3.1", "pkgd": "4.1"}
- )
- pkg_cmd.assert_called_with(
- ["pkg", "upgrade", "--dry-run", "--quiet", "--no-repo-update"],
- output_loglevel="trace",
- python_shell=False,
- ignore_retcode=True,
- )
- def test_list_upgrades_absent(self):
- """
- Test pkgng.list_upgrades with no upgrades available
- """
- pkg_cmd = MagicMock(return_value="")
- with patch.dict(pkgng.__salt__, {"cmd.run_stdout": pkg_cmd}):
- result = pkgng.list_upgrades(refresh=False)
- self.assertDictEqual(result, {})
- pkg_cmd.assert_called_with(
- ["pkg", "upgrade", "--dry-run", "--quiet", "--no-repo-update"],
- output_loglevel="trace",
- python_shell=False,
- ignore_retcode=True,
- )
|