| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import six
- from cloudbridge.cloud.interfaces import Region
- from test import helpers
- from test.helpers import ProviderTestBase
- from test.helpers import standard_interface_tests as sit
- class CloudRegionServiceTestCase(ProviderTestBase):
- _multiprocess_can_split_ = True
- @helpers.skipIfNoService(['compute.regions'])
- def test_storage_services_event_pattern(self):
- expected_event = ".".join((self.provider.PROVIDER_ID,
- "compute.regions"))
- # pylint:disable=protected-access
- self.assertEqual(
- self.provider.compute.regions._service_event_pattern,
- expected_event,
- "Event pattern for {} service should be '{}', "
- "but found '{}'.".format("regions",
- expected_event,
- self.provider.compute.regions.
- _service_event_pattern))
- @helpers.skipIfNoService(['compute.regions'])
- def test_get_and_list_regions(self):
- regions = list(self.provider.compute.regions)
- sit.check_standard_behaviour(
- self, self.provider.compute.regions, regions[-1])
- for region in regions:
- self.assertIsInstance(
- region,
- Region,
- "regions.list() should return a cloudbridge Region")
- self.assertTrue(
- region.name,
- "Region name should be a non-empty string")
- @helpers.skipIfNoService(['compute.regions'])
- def test_regions_unique(self):
- regions = self.provider.compute.regions.list()
- unique_regions = set([region.id for region in regions])
- self.assertTrue(len(regions) == len(list(unique_regions)))
- @helpers.skipIfNoService(['compute.regions'])
- def test_current_region(self):
- current_region = self.provider.compute.regions.current
- self.assertIsInstance(current_region, Region)
- self.assertTrue(current_region in self.provider.compute.regions)
- @helpers.skipIfNoService(['compute.regions'])
- def test_zones(self):
- zone_find_count = 0
- test_zone = helpers.get_provider_test_data(self.provider, "placement")
- for region in self.provider.compute.regions:
- self.assertTrue(region.name)
- for zone in region.zones:
- self.assertTrue(zone.id)
- self.assertTrue(zone.name)
- self.assertTrue(zone.region_name is None or
- isinstance(zone.region_name,
- six.string_types))
- if test_zone == zone.name:
- zone_find_count += 1
- # zone info cannot be repeated between regions
- self.assertEqual(zone_find_count, 1)
|