Merge "Rename called_once_with methods correctly"
This commit is contained in:
commit
a5f1ec074c
@ -16,7 +16,7 @@ import hashlib
|
|||||||
import mock
|
import mock
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from mock import Mock, MagicMock, patch, ANY, DEFAULT
|
from mock import Mock, MagicMock, patch, ANY, DEFAULT, call
|
||||||
from oslo_utils import netutils
|
from oslo_utils import netutils
|
||||||
from webob.exc import HTTPNotFound
|
from webob.exc import HTTPNotFound
|
||||||
|
|
||||||
@ -329,28 +329,27 @@ class BackupAgentTest(trove_testtools.TestCase):
|
|||||||
agent.execute_backup(context=None, backup_info=backup_info,
|
agent.execute_backup(context=None, backup_info=backup_info,
|
||||||
runner=MockBackup)
|
runner=MockBackup)
|
||||||
|
|
||||||
self.assertTrue(
|
conductor_api.API.update_backup.assert_has_calls([
|
||||||
conductor_api.API.update_backup.called_once_with(
|
call(
|
||||||
ANY,
|
|
||||||
backup_id=backup_info['id'],
|
|
||||||
state=BackupState.NEW))
|
|
||||||
|
|
||||||
self.assertTrue(
|
|
||||||
conductor_api.API.update_backup.called_once_with(
|
|
||||||
ANY,
|
ANY,
|
||||||
backup_id=backup_info['id'],
|
backup_id=backup_info['id'],
|
||||||
|
sent=ANY,
|
||||||
size=ANY,
|
size=ANY,
|
||||||
state=BackupState.BUILDING))
|
state=BackupState.BUILDING
|
||||||
|
),
|
||||||
self.assertTrue(
|
call(
|
||||||
conductor_api.API.update_backup.called_once_with(
|
|
||||||
ANY,
|
ANY,
|
||||||
backup_id=backup_info['id'],
|
backup_id=backup_info['id'],
|
||||||
checksum=ANY,
|
checksum='fake-checksum',
|
||||||
location=ANY,
|
location=ANY,
|
||||||
note=ANY,
|
note='w00t',
|
||||||
backup_type=backup_info['type'],
|
sent=ANY,
|
||||||
state=BackupState.COMPLETED))
|
size=ANY,
|
||||||
|
backup_type=MockBackup.backup_type,
|
||||||
|
state=BackupState.COMPLETED,
|
||||||
|
success=True
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
||||||
@patch.object(conductor_api.API, 'get_client', Mock(return_value=Mock()))
|
@patch.object(conductor_api.API, 'get_client', Mock(return_value=Mock()))
|
||||||
@patch.object(conductor_api.API, 'update_backup',
|
@patch.object(conductor_api.API, 'update_backup',
|
||||||
@ -369,28 +368,27 @@ class BackupAgentTest(trove_testtools.TestCase):
|
|||||||
context=None, backup_info=backup_info,
|
context=None, backup_info=backup_info,
|
||||||
runner=MockCheckProcessBackup)
|
runner=MockCheckProcessBackup)
|
||||||
|
|
||||||
self.assertTrue(
|
conductor_api.API.update_backup.assert_has_calls([
|
||||||
conductor_api.API.update_backup.called_once_with(
|
call(
|
||||||
ANY,
|
|
||||||
backup_id=backup_info['id'],
|
|
||||||
state=BackupState.NEW))
|
|
||||||
|
|
||||||
self.assertTrue(
|
|
||||||
conductor_api.API.update_backup.called_once_with(
|
|
||||||
ANY,
|
ANY,
|
||||||
backup_id=backup_info['id'],
|
backup_id=backup_info['id'],
|
||||||
|
sent=ANY,
|
||||||
size=ANY,
|
size=ANY,
|
||||||
state=BackupState.BUILDING))
|
state=BackupState.BUILDING
|
||||||
|
),
|
||||||
self.assertTrue(
|
call(
|
||||||
conductor_api.API.update_backup.called_once_with(
|
|
||||||
ANY,
|
ANY,
|
||||||
backup_id=backup_info['id'],
|
backup_id=backup_info['id'],
|
||||||
checksum=ANY,
|
checksum='fake-checksum',
|
||||||
location=ANY,
|
location=ANY,
|
||||||
note=ANY,
|
note='w00t',
|
||||||
backup_type=backup_info['type'],
|
sent=ANY,
|
||||||
state=BackupState.FAILED))
|
size=ANY,
|
||||||
|
backup_type=MockCheckProcessBackup.backup_type,
|
||||||
|
state=BackupState.FAILED,
|
||||||
|
success=True
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
||||||
@patch.object(conductor_api.API, 'get_client', Mock(return_value=Mock()))
|
@patch.object(conductor_api.API, 'get_client', Mock(return_value=Mock()))
|
||||||
@patch.object(conductor_api.API, 'update_backup',
|
@patch.object(conductor_api.API, 'update_backup',
|
||||||
@ -415,11 +413,26 @@ class BackupAgentTest(trove_testtools.TestCase):
|
|||||||
context=None, backup_info=backup_info,
|
context=None, backup_info=backup_info,
|
||||||
runner=MockLossyBackup)
|
runner=MockLossyBackup)
|
||||||
|
|
||||||
self.assertTrue(
|
conductor_api.API.update_backup.assert_has_calls([
|
||||||
conductor_api.API.update_backup.called_once_with(
|
call(ANY,
|
||||||
|
backup_id=backup_info['id'],
|
||||||
|
sent=ANY,
|
||||||
|
size=ANY,
|
||||||
|
state=BackupState.BUILDING
|
||||||
|
),
|
||||||
|
call(
|
||||||
ANY,
|
ANY,
|
||||||
backup_id=backup_info['id'],
|
backup_id=backup_info['id'],
|
||||||
state=BackupState.FAILED))
|
checksum='y',
|
||||||
|
location='z',
|
||||||
|
note='Error',
|
||||||
|
sent=ANY,
|
||||||
|
size=ANY,
|
||||||
|
backup_type=MockLossyBackup.backup_type,
|
||||||
|
state=BackupState.FAILED,
|
||||||
|
success=False
|
||||||
|
)]
|
||||||
|
)
|
||||||
|
|
||||||
def test_execute_restore(self):
|
def test_execute_restore(self):
|
||||||
"""This test should ensure backup agent
|
"""This test should ensure backup agent
|
||||||
@ -465,12 +478,12 @@ class BackupAgentTest(trove_testtools.TestCase):
|
|||||||
@patch.object(MySqlApp, 'get_data_dir', return_value='/var/lib/mysql/data')
|
@patch.object(MySqlApp, 'get_data_dir', return_value='/var/lib/mysql/data')
|
||||||
@patch.object(conductor_api.API, 'get_client', Mock(return_value=Mock()))
|
@patch.object(conductor_api.API, 'get_client', Mock(return_value=Mock()))
|
||||||
@patch.object(MockSwift, 'load_metadata', return_value={'lsn': '54321'})
|
@patch.object(MockSwift, 'load_metadata', return_value={'lsn': '54321'})
|
||||||
@patch.object(MockStorage, 'save_metadata')
|
@patch.object(MockSwift, 'save')
|
||||||
@patch.object(backupagent, 'get_storage_strategy', return_value=MockSwift)
|
@patch.object(backupagent, 'get_storage_strategy', return_value=MockSwift)
|
||||||
@patch('trove.guestagent.backup.backupagent.LOG')
|
@patch('trove.guestagent.backup.backupagent.LOG')
|
||||||
def test_backup_incremental_metadata(self, mock_logging,
|
def test_backup_incremental_metadata(self, mock_logging,
|
||||||
get_storage_strategy_mock,
|
get_storage_strategy_mock,
|
||||||
save_metadata_mock,
|
save_mock,
|
||||||
load_metadata_mock,
|
load_metadata_mock,
|
||||||
get_datadir_mock):
|
get_datadir_mock):
|
||||||
meta = {
|
meta = {
|
||||||
@ -484,22 +497,21 @@ class BackupAgentTest(trove_testtools.TestCase):
|
|||||||
__exit__=MagicMock(return_value=True)):
|
__exit__=MagicMock(return_value=True)):
|
||||||
agent = backupagent.BackupAgent()
|
agent = backupagent.BackupAgent()
|
||||||
|
|
||||||
|
expected_metadata = {'datastore': 'mysql',
|
||||||
|
'datastore_version': 'bo.gus'}
|
||||||
bkup_info = {'id': '123',
|
bkup_info = {'id': '123',
|
||||||
'location': 'fake-location',
|
'location': 'fake-location',
|
||||||
'type': 'InnoBackupEx',
|
'type': 'InnoBackupEx',
|
||||||
'checksum': 'fake-checksum',
|
'checksum': 'fake-checksum',
|
||||||
'parent': {'location': 'fake', 'checksum': 'md5'},
|
'parent': {'location': 'fake', 'checksum': 'md5'}}
|
||||||
'datastore': 'mysql',
|
bkup_info.update(expected_metadata)
|
||||||
'datastore_version': 'bo.gus'
|
|
||||||
}
|
|
||||||
|
|
||||||
agent.execute_backup(TroveContext(),
|
agent.execute_backup(TroveContext(),
|
||||||
bkup_info,
|
bkup_info,
|
||||||
'/var/lib/mysql/data')
|
'/var/lib/mysql/data')
|
||||||
|
|
||||||
self.assertTrue(MockStorage.save_metadata.called_once_with(
|
save_mock.assert_called_once_with(
|
||||||
ANY,
|
ANY, ANY, metadata=expected_metadata)
|
||||||
meta))
|
|
||||||
|
|
||||||
@patch.object(conductor_api.API, 'get_client', Mock(return_value=Mock()))
|
@patch.object(conductor_api.API, 'get_client', Mock(return_value=Mock()))
|
||||||
def test_backup_incremental_bad_metadata(self):
|
def test_backup_incremental_bad_metadata(self):
|
||||||
|
@ -106,9 +106,6 @@ FAKE_DB_2 = {"_name": "testDB2", "_character_set": "latin2",
|
|||||||
FAKE_USER = [{"_name": "random", "_password": "guesswhat",
|
FAKE_USER = [{"_name": "random", "_password": "guesswhat",
|
||||||
"_host": "%", "_databases": [FAKE_DB]}]
|
"_host": "%", "_databases": [FAKE_DB]}]
|
||||||
|
|
||||||
conductor_api.API.get_client = Mock()
|
|
||||||
conductor_api.API.heartbeat = Mock()
|
|
||||||
|
|
||||||
|
|
||||||
class FakeTime:
|
class FakeTime:
|
||||||
COUNTER = 0
|
COUNTER = 0
|
||||||
@ -811,6 +808,9 @@ class MySqlAdminTest(trove_testtools.TestCase):
|
|||||||
class MySqlAppTest(trove_testtools.TestCase):
|
class MySqlAppTest(trove_testtools.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
conductor_cli_patcher = patch.object(conductor_api.API, 'get_client')
|
||||||
|
self.addCleanup(conductor_cli_patcher.stop)
|
||||||
|
conductor_cli_patcher.start()
|
||||||
super(MySqlAppTest, self).setUp()
|
super(MySqlAppTest, self).setUp()
|
||||||
self.orig_utils_execute_with_timeout = \
|
self.orig_utils_execute_with_timeout = \
|
||||||
mysql_common_service.utils.execute_with_timeout
|
mysql_common_service.utils.execute_with_timeout
|
||||||
@ -906,28 +906,34 @@ class MySqlAppTest(trove_testtools.TestCase):
|
|||||||
mysql_common_service.utils.execute_with_timeout = Mock()
|
mysql_common_service.utils.execute_with_timeout = Mock()
|
||||||
self.appStatus.set_next_status(
|
self.appStatus.set_next_status(
|
||||||
rd_instance.ServiceStatuses.SHUTDOWN)
|
rd_instance.ServiceStatuses.SHUTDOWN)
|
||||||
|
self.patch_conf_property('guest_id', self.FAKE_ID)
|
||||||
|
|
||||||
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
||||||
|
with patch.object(conductor_api.API, 'heartbeat') as patch_hb:
|
||||||
patch_pc.__get__ = Mock(return_value=True)
|
patch_pc.__get__ = Mock(return_value=True)
|
||||||
self.mySqlApp.stop_db(True)
|
self.mySqlApp.stop_db(True)
|
||||||
self.assertTrue(conductor_api.API.heartbeat.called_once_with(
|
patch_hb.assert_called_once_with(
|
||||||
self.FAKE_ID,
|
self.FAKE_ID,
|
||||||
{'service_status':
|
{'service_status':
|
||||||
rd_instance.ServiceStatuses.SHUTDOWN.description}))
|
rd_instance.ServiceStatuses.SHUTDOWN.description},
|
||||||
|
sent=ANY)
|
||||||
|
|
||||||
@patch.object(utils, 'execute_with_timeout', return_value=('0', ''))
|
@patch.object(utils, 'execute_with_timeout', return_value=('0', ''))
|
||||||
def test_stop_mysql_do_not_start_on_reboot(self, mock_execute):
|
def test_stop_mysql_do_not_start_on_reboot(self, mock_execute):
|
||||||
|
|
||||||
self.appStatus.set_next_status(
|
self.appStatus.set_next_status(
|
||||||
rd_instance.ServiceStatuses.SHUTDOWN)
|
rd_instance.ServiceStatuses.SHUTDOWN)
|
||||||
|
self.patch_conf_property('guest_id', self.FAKE_ID)
|
||||||
|
|
||||||
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
||||||
|
with patch.object(conductor_api.API, 'heartbeat') as patch_hb:
|
||||||
patch_pc.__get__ = Mock(return_value=True)
|
patch_pc.__get__ = Mock(return_value=True)
|
||||||
self.mySqlApp.stop_db(True, True)
|
self.mySqlApp.stop_db(True, True)
|
||||||
self.assertTrue(conductor_api.API.heartbeat.called_once_with(
|
patch_hb.assert_called_once_with(
|
||||||
self.FAKE_ID,
|
self.FAKE_ID,
|
||||||
{'service_status':
|
{'service_status':
|
||||||
rd_instance.ServiceStatuses.SHUTDOWN.description}))
|
rd_instance.ServiceStatuses.SHUTDOWN.description},
|
||||||
|
sent=ANY)
|
||||||
self.assertEqual(2, mock_execute.call_count)
|
self.assertEqual(2, mock_execute.call_count)
|
||||||
|
|
||||||
@patch('trove.guestagent.datastore.service.LOG')
|
@patch('trove.guestagent.datastore.service.LOG')
|
||||||
@ -958,17 +964,20 @@ class MySqlAppTest(trove_testtools.TestCase):
|
|||||||
self.mySqlApp.stop_db = Mock()
|
self.mySqlApp.stop_db = Mock()
|
||||||
self.mysql_stops_successfully()
|
self.mysql_stops_successfully()
|
||||||
self.mysql_starts_successfully()
|
self.mysql_starts_successfully()
|
||||||
|
self.patch_conf_property('guest_id', self.FAKE_ID)
|
||||||
|
|
||||||
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
||||||
|
with patch.object(conductor_api.API, 'heartbeat') as patch_hb:
|
||||||
patch_pc.__get__ = Mock(return_value=True)
|
patch_pc.__get__ = Mock(return_value=True)
|
||||||
self.mySqlApp.restart()
|
self.mySqlApp.restart()
|
||||||
|
|
||||||
self.assertTrue(self.mySqlApp.stop_db.called)
|
self.assertTrue(self.mySqlApp.stop_db.called)
|
||||||
self.assertTrue(self.mySqlApp.start_mysql.called)
|
self.assertTrue(self.mySqlApp.start_mysql.called)
|
||||||
self.assertTrue(conductor_api.API.heartbeat.called_once_with(
|
patch_hb.assert_called_once_with(
|
||||||
self.FAKE_ID,
|
self.FAKE_ID,
|
||||||
{'service_status':
|
{'service_status':
|
||||||
rd_instance.ServiceStatuses.RUNNING.description}))
|
rd_instance.ServiceStatuses.RUNNING.description},
|
||||||
|
sent=ANY)
|
||||||
|
|
||||||
def test_restart_mysql_wont_start_up(self):
|
def test_restart_mysql_wont_start_up(self):
|
||||||
|
|
||||||
@ -1008,14 +1017,17 @@ class MySqlAppTest(trove_testtools.TestCase):
|
|||||||
mysql_common_service.utils.execute_with_timeout = Mock()
|
mysql_common_service.utils.execute_with_timeout = Mock()
|
||||||
self.mySqlApp._enable_mysql_on_boot = Mock()
|
self.mySqlApp._enable_mysql_on_boot = Mock()
|
||||||
self.appStatus.set_next_status(rd_instance.ServiceStatuses.RUNNING)
|
self.appStatus.set_next_status(rd_instance.ServiceStatuses.RUNNING)
|
||||||
|
self.patch_conf_property('guest_id', self.FAKE_ID)
|
||||||
|
|
||||||
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
||||||
|
with patch.object(conductor_api.API, 'heartbeat') as patch_hb:
|
||||||
patch_pc.__get__ = Mock(return_value=True)
|
patch_pc.__get__ = Mock(return_value=True)
|
||||||
self.mySqlApp.start_mysql(update_db=True)
|
self.mySqlApp.start_mysql(update_db=True)
|
||||||
self.assertTrue(conductor_api.API.heartbeat.called_once_with(
|
patch_hb.assert_called_once_with(
|
||||||
self.FAKE_ID,
|
self.FAKE_ID,
|
||||||
{'service_status':
|
{'service_status':
|
||||||
rd_instance.ServiceStatuses.RUNNING.description}))
|
rd_instance.ServiceStatuses.RUNNING.description},
|
||||||
|
sent=ANY)
|
||||||
|
|
||||||
@patch('trove.guestagent.datastore.mysql_common.service.LOG')
|
@patch('trove.guestagent.datastore.mysql_common.service.LOG')
|
||||||
@patch('trove.guestagent.datastore.service.LOG')
|
@patch('trove.guestagent.datastore.service.LOG')
|
||||||
@ -1025,14 +1037,17 @@ class MySqlAppTest(trove_testtools.TestCase):
|
|||||||
self.mySqlApp._enable_mysql_on_boot = Mock()
|
self.mySqlApp._enable_mysql_on_boot = Mock()
|
||||||
self.mySqlApp.state_change_wait_time = 1
|
self.mySqlApp.state_change_wait_time = 1
|
||||||
self.appStatus.set_next_status(rd_instance.ServiceStatuses.SHUTDOWN)
|
self.appStatus.set_next_status(rd_instance.ServiceStatuses.SHUTDOWN)
|
||||||
|
self.patch_conf_property('guest_id', self.FAKE_ID)
|
||||||
|
|
||||||
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
with patch.object(BaseDbStatus, 'prepare_completed') as patch_pc:
|
||||||
|
with patch.object(conductor_api.API, 'heartbeat') as patch_hb:
|
||||||
patch_pc.__get__ = Mock(return_value=True)
|
patch_pc.__get__ = Mock(return_value=True)
|
||||||
self.assertRaises(RuntimeError, self.mySqlApp.start_mysql)
|
self.assertRaises(RuntimeError, self.mySqlApp.start_mysql)
|
||||||
self.assertTrue(conductor_api.API.heartbeat.called_once_with(
|
patch_hb.assert_called_once_with(
|
||||||
self.FAKE_ID,
|
self.FAKE_ID,
|
||||||
{'service_status':
|
{'service_status':
|
||||||
rd_instance.ServiceStatuses.SHUTDOWN.description}))
|
rd_instance.ServiceStatuses.SHUTDOWN.description},
|
||||||
|
sent=ANY)
|
||||||
|
|
||||||
@patch('trove.guestagent.datastore.service.LOG')
|
@patch('trove.guestagent.datastore.service.LOG')
|
||||||
@patch('trove.guestagent.datastore.mysql_common.service.LOG')
|
@patch('trove.guestagent.datastore.mysql_common.service.LOG')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user