Skip to content

Commit

Permalink
freezer: do not fail in cache dir is present
Browse files Browse the repository at this point in the history
  • Loading branch information
aplanas committed Aug 29, 2019
1 parent 37ceccb commit 7f70d00
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 7 deletions.
3 changes: 2 additions & 1 deletion salt/modules/freezer.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,8 @@ def freeze(name=None, force=False, **kwargs):
states_path = _states_path()

try:
os.makedirs(states_path)
if not os.path.exists(states_path):
os.makedirs(states_path)
except OSError as e:
msg = 'Error when trying to create the freezer storage %s: %s'
log.error(msg, states_path, e)
Expand Down
36 changes: 30 additions & 6 deletions tests/unit/modules/test_freezer.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,30 @@ def test_freeze_fails_already_frozen(self, makedirs, status):
self.assertRaises(CommandExecutionError, freezer.freeze)
makedirs.assert_called_once()

@patch('salt.utils.json.dump')
@patch('salt.modules.freezer.fopen')
@patch('salt.modules.freezer.status')
@patch('os.makedirs')
def test_freeze_success_two_freeze(self, makedirs, status, fopen, dump):
'''
Test to freeze a current installation
'''
# Freeze the current new state
status.return_value = False
salt_mock = {
'pkg.list_pkgs': MagicMock(return_value={}),
'pkg.list_repos': MagicMock(return_value={}),
}
with patch.dict(freezer.__salt__, salt_mock):
self.assertTrue(freezer.freeze('one'))
self.assertTrue(freezer.freeze('two'))

self.assertEqual(makedirs.call_count, 2)
self.assertEqual(salt_mock['pkg.list_pkgs'].call_count, 2)
self.assertEqual(salt_mock['pkg.list_repos'].call_count, 2)
fopen.assert_called()
dump.assert_called()

@patch('salt.utils.json.dump')
@patch('salt.modules.freezer.fopen')
@patch('salt.modules.freezer.status')
Expand All @@ -132,7 +156,7 @@ def test_freeze_success_new_state(self, makedirs, status, fopen, dump):
salt_mock['pkg.list_pkgs'].assert_called_once()
salt_mock['pkg.list_repos'].assert_called_once()
fopen.assert_called()
dump.asster_called()
dump.assert_called()

@patch('salt.utils.json.dump')
@patch('salt.modules.freezer.fopen')
Expand All @@ -154,7 +178,7 @@ def test_freeze_success_force(self, makedirs, status, fopen, dump):
salt_mock['pkg.list_pkgs'].assert_called_once()
salt_mock['pkg.list_repos'].assert_called_once()
fopen.assert_called()
dump.asster_called()
dump.assert_called()

@patch('salt.modules.freezer.status')
def test_restore_fails_missing_state(self, status):
Expand Down Expand Up @@ -190,7 +214,7 @@ def test_restore_add_missing_repo(self, status, fopen, load):
salt_mock['pkg.list_repos'].assert_called()
salt_mock['pkg.mod_repo'].assert_called_once()
fopen.assert_called()
load.asster_called()
load.assert_called()

@patch('salt.utils.json.load')
@patch('salt.modules.freezer.fopen')
Expand All @@ -217,7 +241,7 @@ def test_restore_add_missing_package(self, status, fopen, load):
salt_mock['pkg.list_repos'].assert_called()
salt_mock['pkg.install'].assert_called_once()
fopen.assert_called()
load.asster_called()
load.assert_called()

@patch('salt.utils.json.load')
@patch('salt.modules.freezer.fopen')
Expand All @@ -244,7 +268,7 @@ def test_restore_remove_extra_package(self, status, fopen, load):
salt_mock['pkg.list_repos'].assert_called()
salt_mock['pkg.remove'].assert_called_once()
fopen.assert_called()
load.asster_called()
load.assert_called()

@patch('salt.utils.json.load')
@patch('salt.modules.freezer.fopen')
Expand All @@ -271,4 +295,4 @@ def test_restore_remove_extra_repo(self, status, fopen, load):
salt_mock['pkg.list_repos'].assert_called()
salt_mock['pkg.del_repo'].assert_called_once()
fopen.assert_called()
load.asster_called()
load.assert_called()

0 comments on commit 7f70d00

Please sign in to comment.