Skip to content

Commit 5915071

Browse files
author
Aaron Sierra
committed
dns: pointdns: Add API request checking
* Align record update with parent zone in test_update_record_success()
1 parent 72d4571 commit 5915071

2 files changed

Lines changed: 68 additions & 2 deletions

File tree

libcloud/test/dns/fixtures/pointdns/_zones_1_records_141_UPDATE.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"zone_record": {
3-
"name": "updated.com",
3+
"name": "updated.example.com",
44
"data": "1.2.3.5",
55
"id": 141,
66
"aux": null,

libcloud/test/dns/test_pointdns.py

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class PointDNSTests(unittest.TestCase):
2727
def setUp(self):
2828
PointDNSDriver.connectionCls.conn_class = PointDNSMockHttp
2929
PointDNSMockHttp.type = None
30+
PointDNSMockHttp.history.clear()
3031
self.driver = PointDNSDriver(*DNS_PARAMS_POINTDNS)
3132

3233
def assertHasKeys(self, dictionary, keys):
@@ -50,6 +51,11 @@ def test_list_record_types(self):
5051
def test_list_zones_success(self):
5152
PointDNSMockHttp.type = "GET"
5253
zones = self.driver.list_zones()
54+
55+
sent = PointDNSMockHttp.history.pop()
56+
self.assertEqual(sent.method, "GET")
57+
self.assertEqual(sent.url, "/zones")
58+
5359
self.assertEqual(len(zones), 2)
5460

5561
zone1 = zones[0]
@@ -70,6 +76,11 @@ def test_list_records_success(self):
7076
PointDNSMockHttp.type = "GET"
7177
zone = self.driver.list_zones()[0]
7278
records = self.driver.list_records(zone=zone)
79+
80+
sent = PointDNSMockHttp.history.pop()
81+
self.assertEqual(sent.method, "GET")
82+
self.assertEqual(sent.url, "/zones/1/records")
83+
7384
self.assertEqual(len(records), 2)
7485

7586
record1 = records[0]
@@ -89,6 +100,11 @@ def test_list_records_success(self):
89100
def test_get_zone_success(self):
90101
PointDNSMockHttp.type = "GET"
91102
zone1 = self.driver.get_zone(zone_id="1")
103+
104+
sent = PointDNSMockHttp.history.pop()
105+
self.assertEqual(sent.method, "GET")
106+
self.assertEqual(sent.url, "/zones/1")
107+
92108
self.assertEqual(zone1.id, "1")
93109
self.assertEqual(zone1.type, "master")
94110
self.assertEqual(zone1.domain, "example.com")
@@ -107,6 +123,13 @@ def test_get_zone_zone_not_exists(self):
107123
def test_get_record_success(self):
108124
PointDNSMockHttp.type = "GET"
109125
record = self.driver.get_record(zone_id="1", record_id="141")
126+
127+
# [0] GET /zones/1/records/141
128+
# [1] GET /zones/1
129+
sent = PointDNSMockHttp.history.pop(0)
130+
self.assertEqual(sent.method, "GET")
131+
self.assertEqual(sent.url, "/zones/1/records/141")
132+
110133
self.assertEqual(record.id, "141")
111134
self.assertEqual(record.name, "site.example.com")
112135
self.assertEqual(record.type, RecordType.A)
@@ -125,6 +148,12 @@ def test_get_record_record_not_exists(self):
125148
def test_create_zone_success(self):
126149
PointDNSMockHttp.type = "CREATE"
127150
zone = self.driver.create_zone(domain="example.com")
151+
152+
sent = PointDNSMockHttp.history.pop()
153+
self.assertEqual(sent.method, "POST")
154+
self.assertEqual(sent.url, "/zones")
155+
self.assertEqual(sent.json["zone"]["name"], "example.com")
156+
128157
self.assertEqual(zone.id, "2")
129158
self.assertEqual(zone.domain, "example.com")
130159
self.assertEqual(zone.ttl, 3600)
@@ -147,6 +176,14 @@ def test_create_record_success(self):
147176
record = self.driver.create_record(
148177
name="site.example.com", zone=zone, type=RecordType.A, data="1.2.3.4"
149178
)
179+
180+
sent = PointDNSMockHttp.history.pop()
181+
self.assertEqual(sent.method, "POST")
182+
self.assertEqual(sent.url, "/zones/1/records")
183+
self.assertEqual(sent.json["zone_record"]["name"], "site.example.com")
184+
self.assertEqual(sent.json["zone_record"]["record_type"], "A")
185+
self.assertEqual(sent.json["zone_record"]["data"], "1.2.3.4")
186+
150187
self.assertEqual(record.id, "143")
151188
self.assertEqual(record.name, "site.example.com")
152189
self.assertEqual(record.type, RecordType.A)
@@ -172,6 +209,13 @@ def test_update_zone_success(self):
172209
PointDNSMockHttp.type = "ZONE_UPDATE"
173210
extra = {"user-id": 6}
174211
_zone = self.driver.update_zone(zone, zone.domain, zone.ttl, extra=extra)
212+
213+
sent = PointDNSMockHttp.history.pop()
214+
self.assertEqual(sent.method, "PUT")
215+
self.assertEqual(sent.url, "/zones/1")
216+
self.assertEqual(sent.json["zone"]["name"], "example.com")
217+
self.assertEqual(sent.json["zone"]["user-id"], 6)
218+
175219
self.assertEqual(_zone.extra.get("user-id"), 6)
176220

177221
def test_update_zone_with_error(self):
@@ -193,13 +237,24 @@ def test_update_record_success(self):
193237
extra = {"ttl": 4500}
194238
record1 = self.driver.update_record(
195239
record=record,
196-
name="updated.com",
240+
name="updated.example.com",
197241
type=RecordType.A,
198242
data="1.2.3.5",
199243
extra=extra,
200244
)
245+
246+
sent = PointDNSMockHttp.history.pop()
247+
self.assertEqual(sent.method, "PUT")
248+
self.assertEqual(sent.url, "/zones/1/records/141")
249+
self.assertEqual(sent.json["zone_record"]["name"], "updated.example.com")
250+
self.assertEqual(sent.json["zone_record"]["record_type"], "A")
251+
self.assertEqual(sent.json["zone_record"]["data"], "1.2.3.5")
252+
self.assertEqual(sent.json["zone_record"]["ttl"], 4500)
253+
254+
self.assertEqual(record.name, "site.example.com")
201255
self.assertEqual(record.data, "1.2.3.4")
202256
self.assertEqual(record.extra.get("ttl"), 3600)
257+
self.assertEqual(record1.name, "updated.example.com")
203258
self.assertEqual(record1.data, "1.2.3.5")
204259
self.assertEqual(record1.extra.get("ttl"), 4500)
205260

@@ -226,6 +281,11 @@ def test_delete_zone_success(self):
226281
zone = self.driver.list_zones()[0]
227282
PointDNSMockHttp.type = "DELETE"
228283
status = self.driver.delete_zone(zone=zone)
284+
285+
sent = PointDNSMockHttp.history.pop()
286+
self.assertEqual(sent.method, "DELETE")
287+
self.assertEqual(sent.url, "/zones/1")
288+
229289
self.assertTrue(status)
230290

231291
def test_delete_zone_zone_not_exists(self):
@@ -247,6 +307,11 @@ def test_delete_record_success(self):
247307
record = records[1]
248308
PointDNSMockHttp.type = "DELETE"
249309
status = self.driver.delete_record(record=record)
310+
311+
sent = PointDNSMockHttp.history.pop()
312+
self.assertEqual(sent.method, "DELETE")
313+
self.assertEqual(sent.url, "/zones/1/records/150")
314+
250315
self.assertTrue(status)
251316

252317
def test_delete_record_record_not_exists(self):
@@ -556,6 +621,7 @@ def test_ex_delete_mail_redirect_not_found(self):
556621

557622
class PointDNSMockHttp(MockHttp):
558623
fixtures = DNSFileFixtures("pointdns")
624+
keep_history = True
559625

560626
def _zones_GET(self, method, url, body, headers):
561627
body = self.fixtures.load("_zones_GET.json")

0 commit comments

Comments
 (0)