From 822d2c69abc2f5dc3246fc25e6bcfa8e9d197ae3 Mon Sep 17 00:00:00 2001 From: Sushil Kumar Date: Mon, 29 Jun 2015 17:56:09 +0000 Subject: [PATCH] Removed the non-existent method call ..assert_called/.assert_called() has been called at many places to assert the execution of method. However, any such method does not exist(discussed in detail in bug). Replaced ..assert_called/.assert_called() by ..assert_called_with(*args, **kwargs). There is one more benefit of using assert_called_with that we have verified the exact argumens which were used in method call. After correcting this found more bugs about invalid asserts, which were working earlier because of mocked method call, which started failing. Corrected these bugs, too. Change-Id: I638e38245676cffdffacb8e4d8316ed18acb1fa3 Closes-Bug: #1469812 --- trove/tests/unittests/cluster/test_cluster.py | 5 ++++- .../cluster/test_cluster_controller.py | 2 +- .../test_cluster_vertica_controller.py | 2 +- .../unittests/cluster/test_vertica_cluster.py | 6 ++++-- .../tests/unittests/guestagent/test_dbaas.py | 6 ++++-- trove/tests/unittests/taskmanager/test_api.py | 5 ++++- .../unittests/taskmanager/test_models.py | 19 ++++++++++++++++--- .../taskmanager/test_vertica_clusters.py | 15 +++++++-------- 8 files changed, 41 insertions(+), 19 deletions(-) diff --git a/trove/tests/unittests/cluster/test_cluster.py b/trove/tests/unittests/cluster/test_cluster.py index 5d1499e309..820464e93d 100644 --- a/trove/tests/unittests/cluster/test_cluster.py +++ b/trove/tests/unittests/cluster/test_cluster.py @@ -25,6 +25,7 @@ from trove.common import exception from trove.common import remote from trove.common.strategies.cluster.experimental.mongodb import ( api as mongodb_api) +from trove.common import utils from trove.datastore import models as datastore_models from trove.instance import models as inst_models from trove.instance.models import DBInstance @@ -171,6 +172,7 @@ class ClusterTest(trove_testtools.TestCase): self.assertRaises(exception.UnprocessableEntity, self.cluster.add_shard) + @patch.object(utils, 'generate_uuid', Mock(return_value='new-shard-id')) @patch.object(datastore_models.DatastoreVersion, 'load_by_uuid') @patch.object(task_api, 'load') @patch.object(Cluster, 'update_db') @@ -209,4 +211,5 @@ class ClusterTest(trove_testtools.TestCase): self.cluster.add_shard() mock_update_db.assert_called_with( task_status=ClusterTasks.ADDING_SHARD) - mock_task_api.mongodb_add_shard_cluster.assert_called + mock_task_api.mongodb_add_shard_cluster.assert_called_with( + self.cluster.id, 'new-shard-id', 'rs2') diff --git a/trove/tests/unittests/cluster/test_cluster_controller.py b/trove/tests/unittests/cluster/test_cluster_controller.py index 824cd80762..37f46ee025 100644 --- a/trove/tests/unittests/cluster/test_cluster_controller.py +++ b/trove/tests/unittests/cluster/test_cluster_controller.py @@ -221,7 +221,7 @@ class TestClusterController(TestCase): cluster = Mock() mock_cluster_load.return_value = cluster self.controller.delete(req, tenant_id, cluster_id) - cluster.delete.assert_called + cluster.delete.assert_called_with() class TestClusterControllerWithStrategy(TestCase): diff --git a/trove/tests/unittests/cluster/test_cluster_vertica_controller.py b/trove/tests/unittests/cluster/test_cluster_vertica_controller.py index f8ca9df773..bffb1346c1 100644 --- a/trove/tests/unittests/cluster/test_cluster_vertica_controller.py +++ b/trove/tests/unittests/cluster/test_cluster_vertica_controller.py @@ -205,7 +205,7 @@ class TestClusterController(trove_testtools.TestCase): cluster = Mock() mock_cluster_load.return_value = cluster self.controller.delete(req, tenant_id, cluster_id) - cluster.delete.assert_called + cluster.delete.assert_called_with() class TestClusterControllerWithStrategy(trove_testtools.TestCase): diff --git a/trove/tests/unittests/cluster/test_vertica_cluster.py b/trove/tests/unittests/cluster/test_vertica_cluster.py index 24a0fde2ab..3fd04d006b 100644 --- a/trove/tests/unittests/cluster/test_vertica_cluster.py +++ b/trove/tests/unittests/cluster/test_vertica_cluster.py @@ -211,7 +211,8 @@ class ClusterTest(trove_testtools.TestCase): self.datastore, self.datastore_version, instances) - mock_task_api.create_cluster.assert_called + mock_task_api.return_value.create_cluster.assert_called_with( + mock_db_create.return_value.id) self.assertEqual(3, mock_ins_create.call_count) @patch.object(vertica_api, 'CONF') @@ -246,7 +247,8 @@ class ClusterTest(trove_testtools.TestCase): self.datastore, self.datastore_version, instances) - mock_task_api.create_cluster.assert_called + mock_task_api.return_value.create_cluster.assert_called_with( + mock_db_create.return_value.id) self.assertEqual(3, mock_ins_create.call_count) def test_delete_bad_task_status(self): diff --git a/trove/tests/unittests/guestagent/test_dbaas.py b/trove/tests/unittests/guestagent/test_dbaas.py index 3dc41144d0..f0d94937fa 100644 --- a/trove/tests/unittests/guestagent/test_dbaas.py +++ b/trove/tests/unittests/guestagent/test_dbaas.py @@ -363,7 +363,8 @@ class MySqlAdminTest(testtools.TestCase): with patch.object(self.mySqlAdmin, '_get_user', return_value=user): with patch.object(self.mySqlAdmin, 'grant_access'): self.mySqlAdmin.update_attributes('test_usr', '%', user_attrs) - self.mySqlAdmin.grant_access.assert_called() + self.mySqlAdmin.grant_access.assert_called_with( + 'new_name', '%', set([])) args, _ = dbaas.LocalSqlClient.execute.call_args_list[1] expected = ("UPDATE mysql.user SET User='new_name' " "WHERE User = 'test_user' AND Host = '%';") @@ -381,7 +382,8 @@ class MySqlAdminTest(testtools.TestCase): with patch.object(self.mySqlAdmin, '_get_user', return_value=user): with patch.object(self.mySqlAdmin, 'grant_access'): self.mySqlAdmin.update_attributes('test_usr', '%', user_attrs) - self.mySqlAdmin.grant_access.assert_called() + self.mySqlAdmin.grant_access.assert_called_with( + 'test_usr', 'new_host', set([])) args, _ = dbaas.LocalSqlClient.execute.call_args_list[1] expected = ("UPDATE mysql.user SET Host='new_host' " "WHERE User = 'test_user' AND Host = '%';") diff --git a/trove/tests/unittests/taskmanager/test_api.py b/trove/tests/unittests/taskmanager/test_api.py index 344ba09a1b..a1df3c8f52 100644 --- a/trove/tests/unittests/taskmanager/test_api.py +++ b/trove/tests/unittests/taskmanager/test_api.py @@ -82,8 +82,11 @@ class ApiTest(trove_testtools.TestCase): @patch.object(agent_models, 'AgentHeartBeat') def test_delete_heartbeat(self, mock_agent_heart_beat): + mock_heartbeat = Mock() + mock_agent_heart_beat.return_value.find_by_instance_id = Mock( + return_value=mock_heartbeat) self.api._delete_heartbeat('some-cluster-id') - mock_agent_heart_beat.return_value.delete.assert_called() + mock_heartbeat.delete.assert_called_with() @patch.object(agent_models, 'AgentHeartBeat') def test_exception_delete_heartbeat(self, mock_agent_heart_beat): diff --git a/trove/tests/unittests/taskmanager/test_models.py b/trove/tests/unittests/taskmanager/test_models.py index 2e6244a01c..9ec8ccc248 100644 --- a/trove/tests/unittests/taskmanager/test_models.py +++ b/trove/tests/unittests/taskmanager/test_models.py @@ -18,7 +18,7 @@ import uuid from cinderclient import exceptions as cinder_exceptions import cinderclient.v2.client as cinderclient -from mock import Mock, MagicMock, patch +from mock import Mock, MagicMock, patch, PropertyMock from novaclient import exceptions as nova_exceptions import novaclient.v2.flavors import novaclient.v2.servers @@ -784,8 +784,21 @@ class BuiltInstanceTasksTest(trove_testtools.TestCase): @patch.object(BaseInstance, 'update_db') def test_attach_replica(self, mock_update_db): master = MagicMock() - self.instance_task.attach_replica(master) - self.instance_task._guest.make_read_only.assert_called() + replica_context = Mock() + mock_guest = MagicMock() + mock_guest.get_replica_context = Mock(return_value=replica_context) + type(master).guest = PropertyMock(return_value=mock_guest) + + config_content = {'config_contents': 'some junk'} + replica_config = MagicMock() + replica_config.config_contents = config_content + + with patch.object(taskmanager_models.BuiltInstanceTasks, + '_render_replica_config', + return_value=replica_config): + self.instance_task.attach_replica(master) + self.instance_task._guest.attach_replica.assert_called_with( + replica_context, config_content) mock_update_db.assert_called_with(slave_of_id=master.id) def test_error_attach_replica(self): diff --git a/trove/tests/unittests/taskmanager/test_vertica_clusters.py b/trove/tests/unittests/taskmanager/test_vertica_clusters.py index e5790ae044..e7733aad4d 100644 --- a/trove/tests/unittests/taskmanager/test_vertica_clusters.py +++ b/trove/tests/unittests/taskmanager/test_vertica_clusters.py @@ -119,7 +119,7 @@ class VerticaClusterTasksTest(trove_testtools.TestCase): InstanceServiceStatus( ServiceStatuses.NEW)) self.clustertasks.create_cluster(Mock(), self.cluster_id) - mock_reset_task.assert_called() + mock_reset_task.assert_called_with() @patch.object(ClusterTasks, 'reset_task') @patch.object(ClusterTasks, 'get_guest') @@ -140,8 +140,8 @@ class VerticaClusterTasksTest(trove_testtools.TestCase): self.clustertasks.create_cluster(Mock(), self.cluster_id) mock_guest.return_value.install_cluster.assert_called_with(['10.0.0.2'] ) - mock_reset_task.assert_called() - mock_guest.return_value.cluster_complete.assert_called() + mock_reset_task.assert_called_with() + mock_guest.return_value.cluster_complete.assert_called_with() @patch.object(ClusterTasks, 'update_statuses_on_failure') @patch.object(ClusterTasks, 'reset_task') @@ -165,8 +165,8 @@ class VerticaClusterTasksTest(trove_testtools.TestCase): with patch.object(ClusterTasks, 'get_guest', return_value=guest_client): self.clustertasks.create_cluster(Mock(), self.cluster_id) - mock_update_status.assert_called() - mock_reset_task.assert_called() + mock_update_status.assert_called_with('1232') + mock_reset_task.assert_called_with() class VerticaTaskManagerAPITest(trove_testtools.TestCase): @@ -180,10 +180,9 @@ class VerticaTaskManagerAPITest(trove_testtools.TestCase): self.call_context.cast = Mock() self.rpc_api_version = '1.0' - @patch.object(rpc, 'get_client') - def test_task_manager_api__cast(self, mock_rpc_client): + def test_task_manager_api_cast(self): self.api._cast(method_name='test_method', version=self.rpc_api_version) - mock_rpc_client.assert_called() + self.call_context.cast.assert_called_with(self.context, 'test_method') class VerticaTaskManagerStrategyTest(trove_testtools.TestCase):