Fix list-availability-zones API for PostgreSQL

Listing of availability zones using PostgreSQl does not work in Manila.
It is caused by usage of not strict types comparison.
So, fix it and add Tempest test for API.

Change-Id: I21a064d60c4e1ccb6752ba6e220785f80bd1cb69
Closes-Bug: #1506938
diff --git a/manila_tempest_tests/services/share/json/shares_client.py b/manila_tempest_tests/services/share/json/shares_client.py
index 660f16b..3eeea5e 100644
--- a/manila_tempest_tests/services/share/json/shares_client.py
+++ b/manila_tempest_tests/services/share/json/shares_client.py
@@ -751,3 +751,12 @@
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
         return json.loads(body)
+
+###############
+
+    def list_availability_zones(self):
+        """Get list of availability zones."""
+        uri = 'os-availability-zone'
+        resp, body = self.get(uri)
+        self.expected_success(200, resp.status)
+        return self._parse_resp(body)
diff --git a/manila_tempest_tests/tests/api/test_availability_zones.py b/manila_tempest_tests/tests/api/test_availability_zones.py
new file mode 100644
index 0000000..7330f41
--- /dev/null
+++ b/manila_tempest_tests/tests/api/test_availability_zones.py
@@ -0,0 +1,33 @@
+# Copyright 2015 mirantis Inc.
+# All Rights Reserved.
+#
+#    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 tempest import test
+
+from manila_tempest_tests.tests.api import base
+
+
+class AvailabilityZonesTest(base.BaseSharesTest):
+
+    def _list_availability_zones_assertions(self, availability_zones):
+        self.assertTrue(len(availability_zones) > 0)
+        keys = ("created_at", "updated_at", "name", "id")
+        for az in availability_zones:
+            for key in keys:
+                self.assertIn(key, az)
+
+    @test.attr(type=["smoke", "gate"])
+    def test_list_availability_zones_extension(self):
+        azs = self.shares_client.list_availability_zones()
+        self._list_availability_zones_assertions(azs)