test_region_service.py 2.6 KB

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