From 65762507f13f10ca8ec59ed5b0a28b2a3bc557ac Mon Sep 17 00:00:00 2001 From: tengqm Date: Wed, 15 Feb 2017 04:00:29 -0500 Subject: [PATCH] Avoid import internal classes from SDK (3) This is part of a series of changes related to the usage of SDK. In some test cases, we are importing the resource classes from SDK directly and even instantiate them. This is bad for unit tests. We should instead mock those resources for unit tests. When functional tests are added, the real resource list/dump will be tested instead. Change-Id: Ie79c742cdc0173ad66975adecf935fb9fec8d209 --- senlinclient/tests/unit/v1/test_action.py | 118 ++++++-------- senlinclient/tests/unit/v1/test_build_info.py | 14 +- .../tests/unit/v1/test_cluster_policy.py | 82 ++++------ senlinclient/tests/unit/v1/test_event.py | 73 ++++----- senlinclient/tests/unit/v1/test_receiver.py | 147 ++++++++---------- 5 files changed, 179 insertions(+), 255 deletions(-) diff --git a/senlinclient/tests/unit/v1/test_action.py b/senlinclient/tests/unit/v1/test_action.py index 12255f7f..91ea5f83 100644 --- a/senlinclient/tests/unit/v1/test_action.py +++ b/senlinclient/tests/unit/v1/test_action.py @@ -13,7 +13,6 @@ import copy import mock -from openstack.cluster.v1 import action as sdk_action from openstack import exceptions as sdk_exc from osc_lib import exceptions as exc @@ -22,57 +21,16 @@ from senlinclient.v1 import action as osc_action class TestAction(fakes.TestClusteringv1): + def setUp(self): super(TestAction, self).setUp() self.mock_client = self.app.client_manager.clustering class TestActionList(TestAction): + columns = ['id', 'name', 'action', 'status', 'target_id', 'depends_on', 'depended_by', 'created_at'] - response = {"actions": [ - { - "action": "NODE_CREATE", - "cause": "RPC Request", - "created_at": "2015-12-04T04:54:41", - "depended_by": [], - "depends_on": [], - "end_time": 1425550000.0, - "id": "2366d440-c73e-4961-9254-6d1c3af7c167", - "inputs": {}, - "interval": -1, - "name": "node_create_0df0931b", - "outputs": {}, - "owner": 'null', - "start_time": 1425550000.0, - "status": "SUCCEEDED", - "status_reason": "Action completed successfully.", - "target": "0df0931b-e251-4f2e-8719-4ebfda3627ba", - "timeout": 3600, - "updated_at": 'null' - }, - { - "action": "NODE_DELETE", - "cause": "RPC Request", - "created_at": "2015-11-04T05:21:41", - "depended_by": [], - "depends_on": [], - "end_time": 1425550000.0, - "id": "edce3528-864f-41fb-8759-f4707925cc09", - "inputs": {}, - "interval": -1, - "name": "node_delete_f0de9b9c", - "outputs": {}, - "owner": 'null', - "start_time": 1425550000.0, - "status": "SUCCEEDED", - "status_reason": "Action completed successfully.", - "target": "f0de9b9c-6d48-4a46-af21-2ca8607777fe", - "timeout": 3600, - "updated_at": 'null' - } - ]} - defaults = { 'global_project': False, 'marker': None, @@ -83,8 +41,28 @@ class TestActionList(TestAction): def setUp(self): super(TestActionList, self).setUp() self.cmd = osc_action.ListAction(self.app, None) - self.mock_client.actions = mock.Mock( - return_value=self.response) + fake_action = mock.Mock( + action="NODE_CREATE", + cause="RPC Request", + created_at="2015-12-04T04:54:41", + depended_by=[], + depends_on=[], + end_time=1425550000.0, + id="2366d440-c73e-4961-9254-6d1c3af7c167", + inputs={}, + interval=-1, + name="node_create_0df0931b", + outputs={}, + owner=None, + start_time=1425550000.0, + status="SUCCEEDED", + status_reason="Action completed successfully.", + target_id="0df0931b-e251-4f2e-8719-4ebfda3627ba", + timeout=3600, + updated_at=None + ) + fake_action.to_dict = mock.Mock(return_value={}) + self.mock_client.actions = mock.Mock(return_value=[fake_action]) def test_action_list_defaults(self): arglist = [] @@ -119,8 +97,6 @@ class TestActionList(TestAction): self.assertEqual(self.columns, columns) def test_action_list_sort_invalid_key(self): - self.mock_client.actions = mock.Mock( - return_value=self.response) kwargs = copy.deepcopy(self.defaults) kwargs['sort'] = 'bad_key' arglist = ['--sort', 'bad_key'] @@ -130,8 +106,6 @@ class TestActionList(TestAction): self.cmd.take_action, parsed_args) def test_action_list_sort_invalid_direction(self): - self.mock_client.actions = mock.Mock( - return_value=self.response) kwargs = copy.deepcopy(self.defaults) kwargs['sort'] = 'name:bad_direction' arglist = ['--sort', 'name:bad_direction'] @@ -160,32 +134,32 @@ class TestActionList(TestAction): class TestActionShow(TestAction): - response = { - "action": "CLUSTER_DELETE", - "cause": "RPC Request", - "context": {}, - "created_at": "2015-06-27T05:09:43", - "depended_by": [], - "depends_on": [], - "end_time": 1423570000.0, - "id": "ffbb9175-d510-4bc1-b676-c6aba2a4ca81", - "inputs": {}, - "interval": -1, - "name": "cluster_delete_fcc9b635", - "outputs": {}, - "owner": 'null', - "start_time": 1423570000.0, - "status": "FAILED", - "status_reason": "Cluster action FAILED", - "target": "fcc9b635-52e3-490b-99f2-87b1640e4e89", - "timeout": 3600, - "updated_at": 'null'} def setUp(self): super(TestActionShow, self).setUp() self.cmd = osc_action.ShowAction(self.app, None) - self.mock_client.get_action = mock.Mock( - return_value=sdk_action.Action(**self.response)) + fake_action = mock.Mock( + action="NODE_CREATE", + cause="RPC Request", + created_at="2015-12-04T04:54:41", + depended_by=[], + depends_on=[], + end_time=1425550000.0, + id="2366d440-c73e-4961-9254-6d1c3af7c167", + inputs={}, + interval=-1, + name="node_create_0df0931b", + outputs={}, + owner=None, + start_time=1425550000.0, + status="SUCCEEDED", + status_reason="Action completed successfully.", + target_id="0df0931b-e251-4f2e-8719-4ebfda3627ba", + timeout=3600, + updated_at=None + ) + fake_action.to_dict = mock.Mock(return_value={}) + self.mock_client.get_action = mock.Mock(return_value=fake_action) def test_action_show(self): arglist = ['my_action'] diff --git a/senlinclient/tests/unit/v1/test_build_info.py b/senlinclient/tests/unit/v1/test_build_info.py index 77b8d6e3..319e2385 100644 --- a/senlinclient/tests/unit/v1/test_build_info.py +++ b/senlinclient/tests/unit/v1/test_build_info.py @@ -11,7 +11,6 @@ # under the License. import mock -from openstack.cluster.v1 import build_info as sbi from senlinclient.tests.unit.v1 import fakes from senlinclient.v1 import build_info as osc_build_info @@ -19,20 +18,17 @@ from senlinclient.v1 import build_info as osc_build_info class TestBuildInfo(fakes.TestClusteringv1): response = {"build_info": { - "api": { - "revision": "1.0" - }, - "engine": { - "revision": "1.0" - } }} def setUp(self): super(TestBuildInfo, self).setUp() self.cmd = osc_build_info.BuildInfo(self.app, None) self.mock_client = self.app.client_manager.clustering - self.mock_client.get_build_info = mock.Mock( - return_value=sbi.BuildInfo(**self.response['build_info'])) + fake_bi = mock.Mock( + api={"revision": "1.0"}, + engine={"revision": "1.0"} + ) + self.mock_client.get_build_info = mock.Mock(return_value=fake_bi) def test_build_info(self): arglist = [] diff --git a/senlinclient/tests/unit/v1/test_cluster_policy.py b/senlinclient/tests/unit/v1/test_cluster_policy.py index d6ac18d2..09d4ed59 100644 --- a/senlinclient/tests/unit/v1/test_cluster_policy.py +++ b/senlinclient/tests/unit/v1/test_cluster_policy.py @@ -11,7 +11,6 @@ # under the License. import mock -from openstack.cluster.v1 import cluster_policy as scp from senlinclient.tests.unit.v1 import fakes from senlinclient.v1 import cluster_policy as osc_cluster_policy @@ -24,72 +23,57 @@ class TestClusterPolicy(fakes.TestClusteringv1): class TestClusterPolicyList(TestClusterPolicy): - columns = ['policy_id', 'policy_name', 'policy_type', 'is_enabled'] - response = {"cluster_policies": [ - { - "cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15", - "cluster_name": "my_cluster", - "enabled": True, - "id": "06be3a1f-b238-4a96-a737-ceec5714087e", - "policy_id": "714fe676-a08f-4196-b7af-61d52eeded15", - "policy_name": "my_policy", - "policy_type": "senlin.policy.deletion-1.0" - }, - { - "cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15", - "cluster_name": "my_cluster", - "enabled": True, - "id": "abddc45e-ac31-4f90-93cc-db55a7d8dd6d", - "policy_id": "e026e09f-a3e9-4dad-a1b9-d7ba316026a1", - "policy_name": "my_policy", - "policy_type": "senlin.policy.scaling-1.0" - } - ]} - - args = { - 'sort': 'name:asc', - } def setUp(self): super(TestClusterPolicyList, self).setUp() self.cmd = osc_cluster_policy.ClusterPolicyList(self.app, None) - cluster = mock.Mock() - cluster.id = 'C1' - self.mock_client.get_cluster = mock.Mock( - return_value=cluster + fake_cluster = mock.Mock(id='C1') + self.mock_client.get_cluster = mock.Mock(return_value=fake_cluster) + fake_binding = mock.Mock( + cluster_id="7d85f602-a948-4a30-afd4-e84f47471c15", + cluster_name="my_cluster", + is_enabled=True, + id="06be3a1f-b238-4a96-a737-ceec5714087e", + policy_id="714fe676-a08f-4196-b7af-61d52eeded15", + policy_name="my_policy", + policy_type="senlin.policy.deletion-1.0" ) + fake_binding.to_dict = mock.Mock(return_value={}) self.mock_client.cluster_policies = mock.Mock( - return_value=self.response) + return_value=[fake_binding]) def test_cluster_policy_list(self): arglist = ['--sort', 'name:asc', '--filter', 'name=my_policy', 'my_cluster', '--full-id'] parsed_args = self.check_parser(self.cmd, arglist, []) + expected_columns = ['policy_id', 'policy_name', 'policy_type', + 'is_enabled'] + columns, data = self.cmd.take_action(parsed_args) + self.mock_client.get_cluster.assert_called_with('my_cluster') self.mock_client.cluster_policies.assert_called_with( - 'C1', - name='my_policy', - **self.args) - self.assertEqual(self.columns, columns) + 'C1', name="my_policy", sort="name:asc") + self.assertEqual(expected_columns, columns) class TestClusterPolicyShow(TestClusterPolicy): - response = {"cluster_policy": { - "cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15", - "cluster_name": "my_cluster", - "enabled": True, - "id": "06be3a1f-b238-4a96-a737-ceec5714087e", - "policy_id": "714fe676-a08f-4196-b7af-61d52eeded15", - "policy_name": "my_policy", - "policy_type": "senlin.policy.deletion-1.0" - }} def setUp(self): super(TestClusterPolicyShow, self).setUp() self.cmd = osc_cluster_policy.ClusterPolicyShow(self.app, None) + fake_binding = mock.Mock( + cluster_id="7d85f602-a948-4a30-afd4-e84f47471c15", + cluster_name="my_cluster", + is_enabled=True, + id="06be3a1f-b238-4a96-a737-ceec5714087e", + policy_id="714fe676-a08f-4196-b7af-61d52eeded15", + policy_name="my_policy", + policy_type="senlin.policy.deletion-1.0" + ) + fake_binding.to_dict = mock.Mock(return_value={}) self.mock_client.get_cluster_policy = mock.Mock( - return_value=scp.ClusterPolicy(**self.response['cluster_policy'])) + return_value=fake_binding) def test_cluster_policy_show(self): arglist = ['--policy', 'my_policy', 'my_cluster'] @@ -100,19 +84,17 @@ class TestClusterPolicyShow(TestClusterPolicy): class TestClusterPolicyUpdate(TestClusterPolicy): - response = {"action": "8bb476c3-0f4c-44ee-9f64-c7b0260814de"} def setUp(self): super(TestClusterPolicyUpdate, self).setUp() self.cmd = osc_cluster_policy.ClusterPolicyUpdate(self.app, None) + fake_resp = {"action": "8bb476c3-0f4c-44ee-9f64-c7b0260814de"} self.mock_client.cluster_update_policy = mock.Mock( - return_value=self.response) + return_value=fake_resp) def test_cluster_policy_update(self): arglist = ['--policy', 'my_policy', '--enabled', 'true', 'my_cluster'] parsed_args = self.check_parser(self.cmd, arglist, []) self.cmd.take_action(parsed_args) self.mock_client.cluster_update_policy.assert_called_with( - 'my_cluster', - 'my_policy', - enabled=True) + 'my_cluster', 'my_policy', enabled=True) diff --git a/senlinclient/tests/unit/v1/test_event.py b/senlinclient/tests/unit/v1/test_event.py index 662ab22c..af539721 100644 --- a/senlinclient/tests/unit/v1/test_event.py +++ b/senlinclient/tests/unit/v1/test_event.py @@ -13,7 +13,6 @@ import copy import mock -from openstack.cluster.v1 import event as sdk_event from openstack import exceptions as sdk_exc from osc_lib import exceptions as exc @@ -31,24 +30,6 @@ class TestEventList(TestEvent): columns = ['id', 'generated_at', 'obj_type', 'obj_id', 'obj_name', 'action', 'status', 'level', 'cluster_id'] - - response = {"events": [ - { - "action": "create", - "cluster_id": 'null', - "id": "2d255b9c-8f36-41a2-a137-c0175ccc29c3", - "level": "20", - "obj_id": "0df0931b-e251-4f2e-8719-4ebfda3627ba", - "obj_name": "node009", - "obj_type": "NODE", - "project": "6e18cc2bdbeb48a5b3cad2dc499f6804", - "status": "CREATING", - "cluster_id": "f23ff00c-ec4f-412d-bd42-7f6e209819cb", - "generated_at": "2015-03-05T08:53:15", - "user": "a21ded6060534d99840658a777c2af5a" - } - ]} - defaults = { 'global_project': False, 'marker': None, @@ -59,8 +40,21 @@ class TestEventList(TestEvent): def setUp(self): super(TestEventList, self).setUp() self.cmd = osc_event.ListEvent(self.app, None) - self.mock_client.events = mock.Mock( - return_value=[sdk_event.Event(**self.response['events'][0])]) + fake_event = mock.Mock( + action="CREATE", + cluster_id=None, + id="2d255b9c-8f36-41a2-a137-c0175ccc29c3", + level="20", + obj_id="0df0931b-e251-4f2e-8719-4ebfda3627ba", + obj_name="node009", + obj_type="NODE", + project_id="6e18cc2bdbeb48a5b3cad2dc499f6804", + status="CREATING", + generated_at="2015-03-05T08:53:15", + user_id="a21ded6060534d99840658a777c2af5a" + ) + fake_event.to_dict = mock.Mock(return_value={}) + self.mock_client.events = mock.Mock(return_value=[fake_event]) def test_event_list_defaults(self): arglist = [] @@ -95,7 +89,6 @@ class TestEventList(TestEvent): self.assertEqual(self.columns, columns) def test_event_list_sort_invalid_key(self): - self.mock_client.events = mock.Mock(return_value=self.response) kwargs = copy.deepcopy(self.defaults) kwargs['sort'] = 'bad_key' arglist = ['--sort', 'bad_key'] @@ -105,7 +98,6 @@ class TestEventList(TestEvent): self.cmd.take_action, parsed_args) def test_event_list_sort_invalid_direction(self): - self.mock_client.events = mock.Mock(return_value=self.response) kwargs = copy.deepcopy(self.defaults) kwargs['sort'] = 'name:bad_direction' arglist = ['--sort', 'name:bad_direction'] @@ -134,37 +126,40 @@ class TestEventList(TestEvent): class TestEventShow(TestEvent): - response = {"event": { - "action": "create", - "cluster_id": 'null', - "id": "2d255b9c-8f36-41a2-a137-c0175ccc29c3", - "level": "20", - "obj_id": "0df0931b-e251-4f2e-8719-4ebfda3627ba", - "obj_name": "node009", - "obj_type": "NODE", - "project": "6e18cc2bdbeb48a5b3cad2dc499f6804", - "status": "CREATING", - "cluster_id": "f23ff00c-ec4f-412d-bd42-7f6e209819cb", - "generated_at": "2015-03-05T08:53:15", - "user": "a21ded6060534d99840658a777c2af5a" - }} def setUp(self): super(TestEventShow, self).setUp() self.cmd = osc_event.ShowEvent(self.app, None) - self.mock_client.get_event = mock.Mock( - return_value=sdk_event.Event(**self.response['event'])) + fake_event = mock.Mock( + action="CREATE", + cluster_id=None, + id="2d255b9c-8f36-41a2-a137-c0175ccc29c3", + level="20", + obj_id="0df0931b-e251-4f2e-8719-4ebfda3627ba", + obj_name="node009", + obj_type="NODE", + project_id="6e18cc2bdbeb48a5b3cad2dc499f6804", + status="CREATING", + generated_at="2015-03-05T08:53:15", + user_id="a21ded6060534d99840658a777c2af5a" + ) + fake_event.to_dict = mock.Mock(return_value={}) + self.mock_client.get_event = mock.Mock(return_value=fake_event) def test_event_show(self): arglist = ['my_event'] parsed_args = self.check_parser(self.cmd, arglist, []) + self.cmd.take_action(parsed_args) + self.mock_client.get_event.assert_called_with('my_event') def test_event_show_not_found(self): arglist = ['my_event'] parsed_args = self.check_parser(self.cmd, arglist, []) self.mock_client.get_event.side_effect = sdk_exc.ResourceNotFound() + error = self.assertRaises(exc.CommandError, self.cmd.take_action, parsed_args) + self.assertEqual('Event not found: my_event', str(error)) diff --git a/senlinclient/tests/unit/v1/test_receiver.py b/senlinclient/tests/unit/v1/test_receiver.py index f9312778..189a5a3b 100644 --- a/senlinclient/tests/unit/v1/test_receiver.py +++ b/senlinclient/tests/unit/v1/test_receiver.py @@ -13,7 +13,6 @@ import copy import mock -from openstack.cluster.v1 import receiver as sdk_receiver from openstack import exceptions as sdk_exc from osc_lib import exceptions as exc import six @@ -31,33 +30,6 @@ class TestReceiver(fakes.TestClusteringv1): class TestReceiverList(TestReceiver): columns = ['id', 'name', 'type', 'cluster_id', 'action', 'created_at'] - response = {"receivers": [ - { - "action": "CLUSTER_SCALE_OUT", - "actor": { - "trust_id": [ - "6dc6d336e3fc4c0a951b5698cd1236d9" - ] - }, - "channel": { - "alarm_url": "http://node1:8778/v1/webhooks/e03dd2e5-8f2e-4ec1" - "-8c6a-74ba891e5422/trigger?V=1&count=1" - }, - "cluster_id": "ae63a10b-4a90-452c-aef1-113a0b255ee3", - "created_at": "2015-06-27T05:09:43", - "domain": "Default", - "id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3", - "name": "cluster_inflate", - "params": { - "count": "1" - }, - "project": "6e18cc2bdbeb48a5b3cad2dc499f6804", - "type": "webhook", - "updated_at": 'null', - "user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c" - } - ]} - defaults = { 'global_project': False, 'marker': None, @@ -68,7 +40,26 @@ class TestReceiverList(TestReceiver): def setUp(self): super(TestReceiverList, self).setUp() self.cmd = osc_receiver.ListReceiver(self.app, None) - self.mock_client.receivers = mock.Mock(return_value=self.response) + fake_receiver = mock.Mock( + action="CLUSTER_SCALE_OUT", + actor={}, + channel={ + "alarm_url": "http://node1:8778/v1/webhooks/e03dd2e5-8f2e-4ec1" + "-8c6a-74ba891e5422/trigger?V=1&count=1" + }, + cluster_id="ae63a10b-4a90-452c-aef1-113a0b255ee3", + created_at="2015-06-27T05:09:43", + domain_id="Default", + id="573aa1ba-bf45-49fd-907d-6b5d6e6adfd3", + name="cluster_inflate", + params={"count": "1"}, + project_id="6e18cc2bdbeb48a5b3cad2dc499f6804", + type="webhook", + updated_at=None, + user_id="b4ad2d6e18cc2b9c48049f6dbe8a5b3c" + ) + fake_receiver.to_dict = mock.Mock(return_value={}) + self.mock_client.receivers = mock.Mock(return_value=[fake_receiver]) def test_receiver_list_defaults(self): arglist = [] @@ -103,8 +94,6 @@ class TestReceiverList(TestReceiver): self.assertEqual(self.columns, columns) def test_receiver_list_sort_invalid_key(self): - self.mock_client.receivers = mock.Mock( - return_value=self.response) kwargs = copy.deepcopy(self.defaults) kwargs['sort'] = 'bad_key' arglist = ['--sort', 'bad_key'] @@ -114,8 +103,6 @@ class TestReceiverList(TestReceiver): self.cmd.take_action, parsed_args) def test_receiver_list_sort_invalid_direction(self): - self.mock_client.receivers = mock.Mock( - return_value=self.response) kwargs = copy.deepcopy(self.defaults) kwargs['sort'] = 'name:bad_direction' arglist = ['--sort', 'name:bad_direction'] @@ -144,36 +131,30 @@ class TestReceiverList(TestReceiver): class TestReceiverShow(TestReceiver): - get_response = {"receiver": { - "action": "CLUSTER_SCALE_OUT", - "actor": { - "trust_id": [ - "6dc6d336e3fc4c0a951b5698cd1236d9" - ] - }, - "channel": { - "alarm_url": "http://node1:8778/v1/webhooks/e03dd2e5-8f2e-4ec1-" - "8c6a-74ba891e5422/trigger?V=1&count=1" - }, - "cluster_id": "ae63a10b-4a90-452c-aef1-113a0b255ee3", - "created_at": "2015-06-27T05:09:43", - "domain": "Default", - "id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3", - "name": "cluster_inflate", - "params": { - "count": "1" - }, - "project": "6e18cc2bdbeb48a5b3cad2dc499f6804", - "type": "webhook", - "updated_at": 'null', - "user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c" - }} def setUp(self): super(TestReceiverShow, self).setUp() self.cmd = osc_receiver.ShowReceiver(self.app, None) - x_receiver = sdk_receiver.Receiver(**self.get_response['receiver']) - self.mock_client.get_receiver = mock.Mock(return_value=x_receiver) + fake_receiver = mock.Mock( + action="CLUSTER_SCALE_OUT", + actor={}, + channel={ + "alarm_url": "http://node1:8778/v1/webhooks/e03dd2e5-8f2e-4ec1" + "-8c6a-74ba891e5422/trigger?V=1&count=1" + }, + cluster_id="ae63a10b-4a90-452c-aef1-113a0b255ee3", + created_at="2015-06-27T05:09:43", + domain_id="Default", + id="573aa1ba-bf45-49fd-907d-6b5d6e6adfd3", + name="cluster_inflate", + params={"count": "1"}, + project_id="6e18cc2bdbeb48a5b3cad2dc499f6804", + type="webhook", + updated_at=None, + user_id="b4ad2d6e18cc2b9c48049f6dbe8a5b3c" + ) + fake_receiver.to_dict = mock.Mock(return_value={}) + self.mock_client.get_receiver = mock.Mock(return_value=fake_receiver) def test_receiver_show(self): arglist = ['my_receiver'] @@ -191,30 +172,6 @@ class TestReceiverShow(TestReceiver): class TestReceiverCreate(TestReceiver): - response = {"receiver": { - "action": "CLUSTER_SCALE_OUT", - "actor": { - "trust_id": [ - "6dc6d336e3fc4c0a951b5698cd1236d9" - ] - }, - "channel": { - "alarm_url": "http://node1:8778/v1/webhooks/e03dd2e5-8f2e-4ec" - "1-8c6a-74ba891e5422/trigger?V=1&count=1" - }, - "cluster_id": "ae63a10b-4a90-452c-aef1-113a0b255ee3", - "created_at": "2015-06-27T05:09:43", - "domain": "Default", - "id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3", - "name": "cluster_inflate", - "params": { - "count": "1" - }, - "project": "6e18cc2bdbeb48a5b3cad2dc499f6804", - "type": "webhook", - "updated_at": 'null', - "user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c" - }} args = { "action": "CLUSTER_SCALE_OUT", @@ -229,10 +186,29 @@ class TestReceiverCreate(TestReceiver): def setUp(self): super(TestReceiverCreate, self).setUp() self.cmd = osc_receiver.CreateReceiver(self.app, None) + fake_receiver = mock.Mock( + action="CLUSTER_SCALE_OUT", + actor={}, + channel={ + "alarm_url": "http://node1:8778/v1/webhooks/e03dd2e5-8f2e-4ec1" + "-8c6a-74ba891e5422/trigger?V=1&count=1" + }, + cluster_id="ae63a10b-4a90-452c-aef1-113a0b255ee3", + created_at="2015-06-27T05:09:43", + domain_id="Default", + id="573aa1ba-bf45-49fd-907d-6b5d6e6adfd3", + name="cluster_inflate", + params={"count": "1"}, + project_id="6e18cc2bdbeb48a5b3cad2dc499f6804", + type="webhook", + updated_at=None, + user_id="b4ad2d6e18cc2b9c48049f6dbe8a5b3c" + ) + fake_receiver.to_dict = mock.Mock(return_value={}) self.mock_client.create_receiver = mock.Mock( - return_value=sdk_receiver.Receiver(**self.response['receiver'])) + return_value=fake_receiver) self.mock_client.get_receiver = mock.Mock( - return_value=sdk_receiver.Receiver(**self.response['receiver'])) + return_value=fake_receiver) def test_receiver_create_webhook(self): arglist = ['my_receiver', '--action', 'CLUSTER_SCALE_OUT', @@ -264,6 +240,7 @@ class TestReceiverCreate(TestReceiver): class TestReceiverDelete(TestReceiver): + def setUp(self): super(TestReceiverDelete, self).setUp() self.cmd = osc_receiver.DeleteReceiver(self.app, None)