def test_delete_snapshot(self): ''' Test parallels.delete_snapshot ''' delete_message = ('Delete the snapshot...\n' 'The snapshot has been successfully deleted.') # Validate single ID name = 'macvm' snap_name = 'kaon' snap_id = 'c2eab062-a635-4ccd-b9ae-998370f898b5' mock_snap_name = MagicMock(return_value=snap_id) with patch.object(parallels, '_validate_snap_name', mock_snap_name): mock_delete = MagicMock(return_value=delete_message) with patch.object(parallels, 'prlctl', mock_delete): ret = parallels.delete_snapshot(name, snap_name) self.assertEqual(ret, delete_message) mock_delete.assert_called_once_with('snapshot-delete', [name, '--id', snap_id], runas=None) # Validate multiple IDs name = 'macvm' snap_name = 'higgs doublet' snap_ids = ['c2eab062-a635-4ccd-b9ae-998370f898b5', '8aca07c5-a0e1-4dcb-ba75-cb154d46d516'] mock_snap_ids = MagicMock(return_value=snap_ids) with patch.object(parallels, '_validate_snap_name', mock_snap_ids): mock_delete = MagicMock(return_value=delete_message) with patch.object(parallels, 'prlctl', mock_delete): ret = parallels.delete_snapshot(name, snap_name, all=True) mock_ret = {snap_ids[0]: delete_message, snap_ids[1]: delete_message} self.assertDictEqual(ret, mock_ret) mock_delete.assert_any_call('snapshot-delete', [name, '--id', snap_ids[0]], runas=None) mock_delete.assert_any_call('snapshot-delete', [name, '--id', snap_ids[1]], runas=None)