From 3aec23cfd2a0477693e6684a97bfb3abbd3cd937 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sun, 18 Jun 2017 10:34:34 -0500 Subject: [PATCH] Convert server group tests to requests_mock Change-Id: Ic4b137073e0c662d26cac254611708b3f31734e0 --- shade/tests/fakes.py | 13 +++-- shade/tests/unit/test_server_group.py | 68 ++++++++++++++++++--------- 2 files changed, 55 insertions(+), 26 deletions(-) diff --git a/shade/tests/fakes.py b/shade/tests/fakes.py index f9996bab9..7f0290ed2 100644 --- a/shade/tests/fakes.py +++ b/shade/tests/fakes.py @@ -258,11 +258,14 @@ class FakeFloatingIP(object): self.instance_id = instance_id -class FakeServerGroup(object): - def __init__(self, id, name, policies): - self.id = id - self.name = name - self.policies = policies +def make_fake_server_group(id, name, policies): + return json.loads(json.dumps({ + 'id': id, + 'name': name, + 'policies': policies, + 'members': [], + 'metadata': {}, + })) class FakeVolume(object): diff --git a/shade/tests/unit/test_server_group.py b/shade/tests/unit/test_server_group.py index 87ae9d9b5..31bf05e40 100644 --- a/shade/tests/unit/test_server_group.py +++ b/shade/tests/unit/test_server_group.py @@ -11,32 +11,58 @@ # under the License. -import mock +import uuid -import shade from shade.tests.unit import base from shade.tests import fakes -class TestServerGroup(base.TestCase): +class TestServerGroup(base.RequestsMockTestCase): - @mock.patch.object(shade.OpenStackCloud, 'nova_client') - def test_create_server_group(self, mock_nova): - server_group_name = 'my-server-group' - self.cloud.create_server_group(name=server_group_name, - policies=['affinity']) + def setUp(self): + super(TestServerGroup, self).setUp() + self.group_id = uuid.uuid4().hex + self.group_name = self.getUniqueString('server-group') + self.policies = ['affinity'] + self.fake_group = fakes.make_fake_server_group( + self.group_id, self.group_name, self.policies) - mock_nova.server_groups.create.assert_called_once_with( - name=server_group_name, policies=['affinity'] - ) + def test_create_server_group(self): - @mock.patch.object(shade.OpenStackCloud, 'nova_client') - def test_delete_server_group(self, mock_nova): - mock_nova.server_groups.list.return_value = [ - fakes.FakeServerGroup('1234', 'name', ['affinity']) - ] - self.assertTrue(self.cloud.delete_server_group('1234')) - mock_nova.server_groups.list.assert_called_once_with() - mock_nova.server_groups.delete.assert_called_once_with( - id='1234' - ) + self.register_uris([ + dict(method='POST', + uri=self.get_mock_url( + 'compute', 'public', append=['os-server-groups']), + json={'server_group': self.fake_group}, + validate=dict( + json={'server_group': { + 'name': self.group_name, + 'policies': self.policies, + }})), + dict(method='GET', + uri=self.get_mock_url( + 'compute', 'public', + append=['os-server-groups', self.group_id],), + json={'server_group': self.fake_group}), + ]) + + self.cloud.create_server_group(name=self.group_name, + policies=self.policies) + + self.assert_calls() + + def test_delete_server_group(self): + self.register_uris([ + dict(method='GET', + uri=self.get_mock_url( + 'compute', 'public', append=['os-server-groups']), + json={'server_groups': [self.fake_group]}), + dict(method='DELETE', + uri=self.get_mock_url( + 'compute', 'public', + append=['os-server-groups', self.group_id]), + json={'server_groups': [self.fake_group]}), + ]) + self.assertTrue(self.cloud.delete_server_group(self.group_name)) + + self.assert_calls()