test_dns_service.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from cloudbridge.base import helpers as cb_helpers
  2. from cloudbridge.interfaces.resources import DnsRecord
  3. from cloudbridge.interfaces.resources import DnsZone
  4. from tests import helpers
  5. from tests.helpers import ProviderTestBase
  6. from tests.helpers import standard_interface_tests as sit
  7. class CloudDnsServiceTestCase(ProviderTestBase):
  8. _multiprocess_can_split_ = True
  9. @helpers.skipIfNoService(['dns.host_zones'])
  10. def test_crud_dns_zones(self):
  11. def create_dns_zone(name):
  12. if name:
  13. name = name + ".com"
  14. return self.provider.dns.host_zones.create(name)
  15. def cleanup_dns_zone(dns_zone):
  16. if dns_zone:
  17. dns_zone.delete()
  18. sit.check_crud(self, self.provider.dns.host_zones, DnsZone,
  19. "cb-crudzone", create_dns_zone, cleanup_dns_zone,
  20. skip_name_check=True)
  21. @helpers.skipIfNoService(['dns.host_zones'])
  22. def test_crud_dns_record(self):
  23. test_zone = None
  24. zone_name = "cb-dnsrec-{0}.com".format(helpers.get_uuid())
  25. def create_dns_rec(name):
  26. if name:
  27. name = name + "." + zone_name
  28. else:
  29. name = zone_name
  30. return test_zone.records.create(
  31. name, 'A', data='10.1.1.1')
  32. def cleanup_dns_rec(dns_rec):
  33. if dns_rec:
  34. dns_rec.delete()
  35. with cb_helpers.cleanup_action(lambda: test_zone.delete()):
  36. test_zone = self.provider.dns.host_zones.create(zone_name)
  37. sit.check_crud(self, test_zone.records, DnsRecord,
  38. "cb-dnsrec", create_dns_rec,
  39. cleanup_dns_rec, skip_name_check=True)
  40. @helpers.skipIfNoService(['dns.host_zones'])
  41. def test_dns_record_properties(self):
  42. test_zone = None
  43. zone_name = "cb-recprop-{0}.com".format(helpers.get_uuid())
  44. with cb_helpers.cleanup_action(lambda: test_zone.delete()):
  45. test_zone = self.provider.dns.host_zones.create(zone_name)
  46. test_rec = None
  47. with cb_helpers.cleanup_action(lambda: test_rec.delete()):
  48. zone_name = "subdomain." + zone_name
  49. test_rec = test_zone.records.create(
  50. zone_name, 'CNAME', data='hello.com', ttl=500)
  51. self.assertEqual(test_rec.zone_id, test_zone.id)
  52. self.assertEqual(test_rec.type, 'CNAME')
  53. self.assertEqual(test_rec.data, 'hello.com')
  54. self.assertEqual(test_rec.ttl, 500)