mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Unit tests for zypper upgrade and dist-upgrade
This commit is contained in:
parent
4bcfef2ba2
commit
1331ae5c72
2 changed files with 71 additions and 1 deletions
|
@ -1052,7 +1052,7 @@ def upgrade(refresh=True,
|
|||
dist_upgrade=False,
|
||||
fromrepo=None,
|
||||
novendorchange=False,
|
||||
**kwargs):
|
||||
**kwargs): # pylint: disable=unused-argument
|
||||
'''
|
||||
.. versionchanged:: 2015.8.12,2016.3.3,Carbon
|
||||
On minions running systemd>=205, `systemd-run(1)`_ is now used to
|
||||
|
|
|
@ -329,6 +329,76 @@ class ZypperTestCase(TestCase):
|
|||
with patch('salt.modules.zypper.__zypper__', ZyppCallMock(return_value=get_test_data('zypper-available.txt'))):
|
||||
self.assertEqual(zypper.latest_version('vim'), '7.4.326-2.62')
|
||||
|
||||
@patch('salt.modules.zypper.refresh_db', MagicMock(return_value=True))
|
||||
@patch('salt.modules.zypper._systemd_scope', MagicMock(return_value=False))
|
||||
def test_upgrade_success(self):
|
||||
'''
|
||||
Test system upgrade and dist-upgrade success.
|
||||
|
||||
:return:
|
||||
'''
|
||||
with patch('salt.modules.zypper.__zypper__.noraise.call', MagicMock()) as zypper_mock:
|
||||
with patch('salt.modules.zypper.list_pkgs', MagicMock(side_effect=[{"vim": "1.1"}, {"vim": "1.2"}])):
|
||||
ret = zypper.upgrade()
|
||||
self.assertTrue(ret['result'])
|
||||
self.assertDictEqual(ret['changes'], {"vim": {"old": "1.1", "new": "1.2"}})
|
||||
zypper_mock.assert_any_call('update', '--auto-agree-with-licenses')
|
||||
|
||||
with patch('salt.modules.zypper.list_pkgs', MagicMock(side_effect=[{"vim": "1.1"}, {"vim": "1.2"}])):
|
||||
ret = zypper.upgrade(dist_upgrade=True)
|
||||
self.assertTrue(ret['result'])
|
||||
self.assertDictEqual(ret['changes'], {"vim": {"old": "1.1", "new": "1.2"}})
|
||||
zypper_mock.assert_any_call('dist-upgrade', '--auto-agree-with-licenses')
|
||||
|
||||
with patch('salt.modules.zypper.list_pkgs', MagicMock(side_effect=[{"vim": "1.1"}, {"vim": "1.1"}])):
|
||||
ret = zypper.upgrade(dist_upgrade=True, dryrun=True)
|
||||
self.assertTrue(ret['result'])
|
||||
self.assertDictEqual(ret['changes'], {})
|
||||
zypper_mock.assert_any_call('dist-upgrade', '--auto-agree-with-licenses', '--dry-run')
|
||||
zypper_mock.assert_any_call('dist-upgrade', '--auto-agree-with-licenses', '--dry-run', '--debug-solver')
|
||||
|
||||
with patch('salt.modules.zypper.list_pkgs', MagicMock(side_effect=[{"vim": "1.1"}, {"vim": "1.2"}])):
|
||||
ret = zypper.upgrade(dist_upgrade=True, fromrepo="Dummy", novendorchange=True)
|
||||
self.assertTrue(ret['result'])
|
||||
self.assertDictEqual(ret['changes'], {"vim": {"old": "1.1", "new": "1.2"}})
|
||||
zypper_mock.assert_any_call('dist-upgrade', '--auto-agree-with-licenses', '--from', "Dummy", '--no-allow-vendor-change')
|
||||
|
||||
@patch('salt.modules.zypper.refresh_db', MagicMock(return_value=True))
|
||||
@patch('salt.modules.zypper._systemd_scope', MagicMock(return_value=False))
|
||||
def test_upgrade_failure(self):
|
||||
'''
|
||||
Test system upgrade failure.
|
||||
|
||||
:return:
|
||||
'''
|
||||
zypper_out = '''
|
||||
Loading repository data...
|
||||
Reading installed packages...
|
||||
Computing distribution upgrade...
|
||||
Use 'zypper repos' to get the list of defined repositories.
|
||||
Repository 'DUMMY' not found by its alias, number, or URI.
|
||||
'''
|
||||
|
||||
class FailingZypperDummy(object):
|
||||
def __init__(self):
|
||||
self.stdout = MagicMock(return_value=zypper_out)
|
||||
self.stderr = MagicMock(return_value="")
|
||||
self.exit_code = MagicMock(return_value=555)
|
||||
self.noraise = MagicMock()
|
||||
self.SUCCESS_EXIT_CODES = [0]
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
return self
|
||||
|
||||
with patch('salt.modules.zypper.__zypper__', FailingZypperDummy()) as zypper_mock:
|
||||
zypper_mock.noraise.call = MagicMock()
|
||||
with patch('salt.modules.zypper.list_pkgs', MagicMock(side_effect=[{"vim": "1.1"}, {"vim": "1.1"}])):
|
||||
ret = zypper.upgrade(dist_upgrade=True, fromrepo="DUMMY")
|
||||
self.assertFalse(ret['result'])
|
||||
self.assertEqual(ret['comment'], zypper_out.strip())
|
||||
self.assertDictEqual(ret['changes'], {})
|
||||
zypper_mock.noraise.call.assert_called_with('dist-upgrade', '--auto-agree-with-licenses', '--from', 'DUMMY')
|
||||
|
||||
@patch('salt.modules.zypper.refresh_db', MagicMock(return_value=True))
|
||||
def test_upgrade_available(self):
|
||||
'''
|
||||
|
|
Loading…
Add table
Reference in a new issue