summaryrefslogtreecommitdiff
path: root/designateclient/tests/v2/test_zones.py
diff options
context:
space:
mode:
Diffstat (limited to 'designateclient/tests/v2/test_zones.py')
-rw-r--r--designateclient/tests/v2/test_zones.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/designateclient/tests/v2/test_zones.py b/designateclient/tests/v2/test_zones.py
index 5470be7..63ee81e 100644
--- a/designateclient/tests/v2/test_zones.py
+++ b/designateclient/tests/v2/test_zones.py
@@ -116,7 +116,19 @@ class TestZones(v2.APIV2TestCase, v2.CrudMixin):
self.stub_entity("DELETE", id=ref["id"])
self.client.zones.delete(ref["id"])
+
+ self.assertRequestBodyIs(None)
+ self.assertRequestHeaderEqual('X-Designate-Delete-Shares', None)
+
+ def test_delete_with_delete_shares(self):
+ ref = self.new_ref()
+
+ self.stub_entity("DELETE", id=ref["id"])
+
+ self.client.zones.delete(ref["id"], delete_shares=True)
+
self.assertRequestBodyIs(None)
+ self.assertRequestHeaderEqual('X-Designate-Delete-Shares', 'true')
def test_task_abandon(self):
ref = self.new_ref()
@@ -380,3 +392,73 @@ class TestZoneImports(v2.APIV2TestCase, v2.CrudMixin):
self.client.zone_imports.delete(ref["id"])
self.assertRequestBodyIs(None)
+
+
+class TestZoneShared(v2.APIV2TestCase, v2.CrudMixin):
+ def setUp(self):
+ super(TestZoneShared, self).setUp()
+ self.zone_id = str(uuid.uuid4())
+ self.target_project_id = str(uuid.uuid4())
+ self.project_id = str(uuid.uuid4())
+ self.created_at = time.strftime("%c")
+ self.updated_at = time.strftime("%c")
+
+ def new_ref(self, **kwargs):
+ ref = super(TestZoneShared, self).new_ref(**kwargs)
+ ref.setdefault("zone_id", self.zone_id)
+ ref.setdefault("target_project_id", self.target_project_id)
+ ref.setdefault("project_id", self.project_id)
+ ref.setdefault("created_at", self.created_at)
+ ref.setdefault("updated_at", self.updated_at)
+ return ref
+
+ def test_share_a_zone(self):
+ json_body = {"target_project_id": self.target_project_id}
+
+ expected = self.new_ref()
+
+ self.stub_entity('POST', parts=['zones', self.zone_id, 'shares'],
+ entity=expected, json=json_body)
+
+ response = self.client.zone_share.create(self.zone_id,
+ self.target_project_id)
+
+ self.assertRequestBodyIs(json=json_body)
+ self.assertEqual(expected, response)
+
+ def test_get_zone_share(self):
+ expected = self.new_ref()
+
+ parts = ["zones", self.zone_id, "shares"]
+ self.stub_entity("GET", parts=parts, entity=expected,
+ id=expected["id"])
+
+ response = self.client.zone_share.get(self.zone_id, expected["id"])
+
+ self.assertRequestBodyIs(None)
+ self.assertEqual(expected, response)
+
+ def test_list_zone_shares(self):
+ items = [
+ self.new_ref(),
+ self.new_ref()
+ ]
+
+ parts = ["zones", self.zone_id, "shares"]
+ self.stub_entity('GET', parts=parts, entity={"shared_zones": items})
+
+ listed = self.client.zone_share.list(self.zone_id)
+
+ self.assertList(items, listed)
+ self.assertQueryStringIs("")
+
+ def test_delete_zone_share(self):
+ ref = self.new_ref()
+
+ parts = ["zones", self.zone_id, "shares", ref["id"]]
+ self.stub_url('DELETE', parts=parts)
+
+ response = self.client.zone_share.delete(self.zone_id, ref["id"])
+
+ self.assertRequestBodyIs(None)
+ self.assertEqual('', response)