Enhance unit test coverage: availability_zone_client
Test also az_list with details by default.
Change-Id: I46925bc0f411f8132e7f949673ff45f096600145
diff --git a/tempest/tests/services/compute/test_availability_zone_client.py b/tempest/tests/services/compute/test_availability_zone_client.py
index 6100f44..e1d94bc 100644
--- a/tempest/tests/services/compute/test_availability_zone_client.py
+++ b/tempest/tests/services/compute/test_availability_zone_client.py
@@ -12,6 +12,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+import copy
+
from tempest_lib.tests import fake_auth_provider
from tempest.services.compute.json import availability_zone_client
@@ -20,7 +22,7 @@
class TestAvailabilityZoneClient(base.BaseComputeServiceTest):
- FAKE_AVAILABIRITY_ZONE_INFO = {
+ FAKE_AZ_INFO = {
"availabilityZoneInfo":
[
{
@@ -33,20 +35,48 @@
]
}
+ FAKE_AZ_DETAILS = {
+ "testhost": {
+ "nova-compute": {
+ "available": True,
+ "active": True,
+ "updated_at": "2015-09-10T07:16:46.000000"
+ }
+ }
+ }
+
def setUp(self):
super(TestAvailabilityZoneClient, self).setUp()
fake_auth = fake_auth_provider.FakeAuthProvider()
self.client = availability_zone_client.AvailabilityZoneClient(
fake_auth, 'compute', 'regionOne')
- def test_list_availability_zones_with_str_body(self):
+ def _test_availability_zones(self, to_utf=False):
self.check_service_client_function(
self.client.list_availability_zones,
'tempest.common.service_client.ServiceClient.get',
- self.FAKE_AVAILABIRITY_ZONE_INFO)
+ self.FAKE_AZ_INFO,
+ to_utf)
+
+ def _test_availability_zones_with_details(self, to_utf=False):
+ fake_az_details = copy.deepcopy(self.FAKE_AZ_INFO)
+ fake_az_details['availabilityZoneInfo'][0]['hosts'] = \
+ self.FAKE_AZ_DETAILS
+ self.check_service_client_function(
+ self.client.list_availability_zones,
+ 'tempest.common.service_client.ServiceClient.get',
+ fake_az_details,
+ to_utf,
+ detail=True)
+
+ def test_list_availability_zones_with_str_body(self):
+ self._test_availability_zones()
def test_list_availability_zones_with_bytes_body(self):
- self.check_service_client_function(
- self.client.list_availability_zones,
- 'tempest.common.service_client.ServiceClient.get',
- self.FAKE_AVAILABIRITY_ZONE_INFO, to_utf=True)
+ self._test_availability_zones(True)
+
+ def test_list_availability_zones_with_str_body_and_details(self):
+ self._test_availability_zones_with_details()
+
+ def test_list_availability_zones_with_bytes_body_and_details(self):
+ self._test_availability_zones_with_details(True)