summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamie Lennox <jamielennox@redhat.com>2014-07-11 10:15:17 +1000
committerJamie Lennox <jamielennox@redhat.com>2014-08-25 16:15:26 +1000
commit49c2c64304b5a79c3658c1b57f665fd8e2fe2419 (patch)
tree05f0c64110b23d7e3722ae209bcec552d8591eb9
parent8f23885ca3a55c9ef61fcf6284ca140c4a1c0b9a (diff)
downloadpython-cinderclient-49c2c64304b5a79c3658c1b57f665fd8e2fe2419.tar.gz
convert availability zone tests to requests-mock
Blueprint: http-mock-testing Change-Id: Ib02db9b9e24808d2f5eac42cf6f5b3c5ca123e9b
-rw-r--r--cinderclient/tests/fixture_data/availability_zones.py80
-rw-r--r--cinderclient/tests/v1/test_availability_zone.py17
-rw-r--r--cinderclient/tests/v2/test_availability_zone.py17
3 files changed, 98 insertions, 16 deletions
diff --git a/cinderclient/tests/fixture_data/availability_zones.py b/cinderclient/tests/fixture_data/availability_zones.py
new file mode 100644
index 0000000..bb1bc68
--- /dev/null
+++ b/cinderclient/tests/fixture_data/availability_zones.py
@@ -0,0 +1,80 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from datetime import datetime
+from cinderclient.tests.fixture_data import base
+
+# FIXME(jamielennox): use timeutils from oslo
+FORMAT = '%Y-%m-%d %H:%M:%S'
+
+
+class Fixture(base.Fixture):
+
+ base_url = 'os-availability-zone'
+
+ def setUp(self):
+ super(Fixture, self).setUp()
+
+ get_availability = {
+ "availabilityZoneInfo": [
+ {
+ "zoneName": "zone-1",
+ "zoneState": {"available": True},
+ "hosts": None,
+ },
+ {
+ "zoneName": "zone-2",
+ "zoneState": {"available": False},
+ "hosts": None,
+ },
+ ]
+ }
+ self.requests.register_uri('GET', self.url(), json=get_availability)
+
+ updated_1 = datetime(2012, 12, 26, 14, 45, 25, 0).strftime(FORMAT)
+ updated_2 = datetime(2012, 12, 26, 14, 45, 24, 0).strftime(FORMAT)
+ get_detail = {
+ "availabilityZoneInfo": [
+ {
+ "zoneName": "zone-1",
+ "zoneState": {"available": True},
+ "hosts": {
+ "fake_host-1": {
+ "cinder-volume": {
+ "active": True,
+ "available": True,
+ "updated_at": updated_1,
+ }
+ }
+ }
+ },
+ {
+ "zoneName": "internal",
+ "zoneState": {"available": True},
+ "hosts": {
+ "fake_host-1": {
+ "cinder-sched": {
+ "active": True,
+ "available": True,
+ "updated_at": updated_2,
+ }
+ }
+ }
+ },
+ {
+ "zoneName": "zone-2",
+ "zoneState": {"available": False},
+ "hosts": None,
+ },
+ ]
+ }
+ self.requests.register_uri('GET', self.url('detail'), json=get_detail)
diff --git a/cinderclient/tests/v1/test_availability_zone.py b/cinderclient/tests/v1/test_availability_zone.py
index 62b2717..8ef8405 100644
--- a/cinderclient/tests/v1/test_availability_zone.py
+++ b/cinderclient/tests/v1/test_availability_zone.py
@@ -18,22 +18,23 @@ import six
from cinderclient.v1 import availability_zones
from cinderclient.v1 import shell
+from cinderclient.tests.fixture_data import client
+from cinderclient.tests.fixture_data import availability_zones as azfixture
from cinderclient.tests import utils
-from cinderclient.tests.v1 import fakes
-cs = fakes.FakeClient()
+class AvailabilityZoneTest(utils.FixturedTestCase):
-
-class AvailabilityZoneTest(utils.TestCase):
+ client_fixture_class = client.V1
+ data_fixture_class = azfixture.Fixture
def _assertZone(self, zone, name, status):
self.assertEqual(zone.zoneName, name)
self.assertEqual(zone.zoneState, status)
def test_list_availability_zone(self):
- zones = cs.availability_zones.list(detailed=False)
- cs.assert_called('GET', '/os-availability-zone')
+ zones = self.cs.availability_zones.list(detailed=False)
+ self.assert_called('GET', '/os-availability-zone')
for zone in zones:
self.assertIsInstance(zone,
@@ -53,8 +54,8 @@ class AvailabilityZoneTest(utils.TestCase):
self._assertZone(z1[0], l1[0], l1[1])
def test_detail_availability_zone(self):
- zones = cs.availability_zones.list(detailed=True)
- cs.assert_called('GET', '/os-availability-zone/detail')
+ zones = self.cs.availability_zones.list(detailed=True)
+ self.assert_called('GET', '/os-availability-zone/detail')
for zone in zones:
self.assertIsInstance(zone,
diff --git a/cinderclient/tests/v2/test_availability_zone.py b/cinderclient/tests/v2/test_availability_zone.py
index 4236922..2e49c4a 100644
--- a/cinderclient/tests/v2/test_availability_zone.py
+++ b/cinderclient/tests/v2/test_availability_zone.py
@@ -18,22 +18,23 @@ import six
from cinderclient.v2 import availability_zones
from cinderclient.v2 import shell
+from cinderclient.tests.fixture_data import client
+from cinderclient.tests.fixture_data import availability_zones as azfixture
from cinderclient.tests import utils
-from cinderclient.tests.v2 import fakes
-cs = fakes.FakeClient()
+class AvailabilityZoneTest(utils.FixturedTestCase):
-
-class AvailabilityZoneTest(utils.TestCase):
+ client_fixture_class = client.V2
+ data_fixture_class = azfixture.Fixture
def _assertZone(self, zone, name, status):
self.assertEqual(zone.zoneName, name)
self.assertEqual(zone.zoneState, status)
def test_list_availability_zone(self):
- zones = cs.availability_zones.list(detailed=False)
- cs.assert_called('GET', '/os-availability-zone')
+ zones = self.cs.availability_zones.list(detailed=False)
+ self.assert_called('GET', '/os-availability-zone')
for zone in zones:
self.assertIsInstance(zone,
@@ -53,8 +54,8 @@ class AvailabilityZoneTest(utils.TestCase):
self._assertZone(z1[0], l1[0], l1[1])
def test_detail_availability_zone(self):
- zones = cs.availability_zones.list(detailed=True)
- cs.assert_called('GET', '/os-availability-zone/detail')
+ zones = self.cs.availability_zones.list(detailed=True)
+ self.assert_called('GET', '/os-availability-zone/detail')
for zone in zones:
self.assertIsInstance(zone,