test_region_service.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import six
  2. from cloudbridge.interfaces import Region
  3. from tests import helpers
  4. from tests.helpers import ProviderTestBase
  5. from tests.helpers import standard_interface_tests as sit
  6. class CloudRegionServiceTestCase(ProviderTestBase):
  7. _multiprocess_can_split_ = True
  8. @helpers.skipIfNoService(['compute.regions'])
  9. def test_storage_services_event_pattern(self):
  10. # pylint:disable=protected-access
  11. self.assertEqual(
  12. self.provider.compute.regions._service_event_pattern,
  13. "provider.compute.regions",
  14. "Event pattern for {} service should be '{}', "
  15. "but found '{}'.".format("regions",
  16. "provider.compute.regions",
  17. self.provider.compute.regions.
  18. _service_event_pattern))
  19. @helpers.skipIfNoService(['compute.regions'])
  20. def test_get_and_list_regions(self):
  21. regions = list(self.provider.compute.regions)
  22. sit.check_standard_behaviour(
  23. self, self.provider.compute.regions, regions[-1])
  24. for region in regions:
  25. self.assertIsInstance(
  26. region,
  27. Region,
  28. "regions.list() should return a cloudbridge Region")
  29. self.assertTrue(
  30. region.name,
  31. "Region name should be a non-empty string")
  32. @helpers.skipIfNoService(['compute.regions'])
  33. def test_regions_unique(self):
  34. regions = self.provider.compute.regions.list()
  35. unique_regions = set([region.id for region in regions])
  36. self.assertTrue(len(regions) == len(list(unique_regions)))
  37. @helpers.skipIfNoService(['compute.regions'])
  38. def test_current_region(self):
  39. current_region = self.provider.compute.regions.current
  40. self.assertIsInstance(current_region, Region)
  41. self.assertTrue(current_region in self.provider.compute.regions)
  42. @helpers.skipIfNoService(['compute.regions'])
  43. def test_zones(self):
  44. zone_find_count = 0
  45. test_zone = helpers.get_provider_test_data(self.provider, "placement")
  46. for region in self.provider.compute.regions:
  47. self.assertTrue(region.name)
  48. for zone in region.zones:
  49. self.assertTrue(zone.id)
  50. self.assertTrue(zone.name)
  51. self.assertTrue(zone.region_name is None or
  52. isinstance(zone.region_name,
  53. six.string_types))
  54. if test_zone == zone.name:
  55. zone_find_count += 1
  56. # zone info cannot be repeated between regions
  57. self.assertEqual(zone_find_count, 1)