diff options
Diffstat (limited to 'designateclient/tests/v2/test_zones.py')
-rw-r--r-- | designateclient/tests/v2/test_zones.py | 82 |
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) |