Skip to content

Commit f6dd97d

Browse files
author
Aaron Sierra
committed
dns: durabledns: Add API request checking
1 parent 20fb38f commit f6dd97d

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

libcloud/test/dns/test_durabledns.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class DurableDNSTests(LibcloudTestCase):
3939
def setUp(self):
4040
DurableDNSDriver.connectionCls.conn_class = DurableDNSMockHttp
4141
DurableDNSMockHttp.type = None
42+
DurableDNSMockHttp.history.clear()
4243
self.driver = DurableDNSDriver(*DNS_PARAMS_DURABLEDNS)
4344

4445
def assertHasKeys(self, dictionary, keys):
@@ -81,6 +82,11 @@ def test_list_zones(self):
8182
)
8283
self.driver.get_zone = MagicMock(return_value=zone)
8384
zones = self.driver.list_zones()
85+
86+
sent = DurableDNSMockHttp.history.pop()
87+
self.assertEqual(sent.method, "POST")
88+
self.assertEqual(sent.url, "/services/dns/listZones.php")
89+
8490
self.assertEqual(len(zones), 2)
8591
zone = zones[0]
8692
self.assertEqual(zone.id, "myzone.com.")
@@ -128,6 +134,13 @@ def test_list_records(self):
128134
)
129135
self.driver.get_record = MagicMock(return_value=record)
130136
records = self.driver.list_records(zone=zone)
137+
138+
sent = DurableDNSMockHttp.history.pop()
139+
self.assertEqual(sent.method, "POST")
140+
self.assertEqual(sent.url, "/services/dns/listRecords.php")
141+
data = sent.body.decode()
142+
self.assertIn(":zonename>myzone.com.</", data)
143+
131144
self.assertEqual(len(records), 2)
132145
self.assertEqual(record.id, "353286987")
133146
self.assertEqual(record.name, "record1")
@@ -166,6 +179,13 @@ def test_list_records_zone_does_not_exist(self):
166179

167180
def test_get_zone(self):
168181
zone = self.driver.get_zone(zone_id="myzone.com.")
182+
183+
sent = DurableDNSMockHttp.history.pop()
184+
self.assertEqual(sent.method, "POST")
185+
self.assertEqual(sent.url, "/services/dns/getZone.php")
186+
data = sent.body.decode()
187+
self.assertIn(":zonename>myzone.com.</", data)
188+
169189
self.assertEqual(zone.id, "myzone.com.")
170190
self.assertEqual(zone.domain, "myzone.com.")
171191
self.assertEqual(zone.ttl, 1300)
@@ -191,6 +211,15 @@ def test_get_zone_does_not_exist(self):
191211

192212
def test_get_record(self):
193213
record = self.driver.get_record(zone_id="myzone.com.", record_id="record1")
214+
215+
# [0] /services/dns/getRecord.php
216+
# [1] /services/dns/getZone.php
217+
sent = DurableDNSMockHttp.history.pop(0)
218+
self.assertEqual(sent.method, "POST")
219+
self.assertEqual(sent.url, "/services/dns/getRecord.php")
220+
data = sent.body.decode()
221+
self.assertIn(":zonename>myzone.com.</", data)
222+
194223
self.assertEqual(record.id, "353286987")
195224
self.assertEqual(record.name, "record1")
196225
self.assertEqual(record.type, "A")
@@ -355,6 +384,13 @@ def test_update_zone(self):
355384
zone, zone.domain, type=zone.type, ttl=4000, extra=new_extra
356385
)
357386

387+
# [0] /services/dns/updateZone.php
388+
# [1] /services/dns/getZone.php
389+
sent = DurableDNSMockHttp.history.pop(0)
390+
self.assertEqual(sent.method, "POST")
391+
self.assertEqual(sent.url, "/services/dns/updateZone.php")
392+
self.assertIn(":zonename>deletedzone.com.</", sent.body)
393+
358394
self.assertEqual(updated_zone.id, "myzone.com.")
359395
self.assertEqual(updated_zone.domain, "myzone.com.")
360396
self.assertEqual(updated_zone.ttl, 4000)
@@ -431,6 +467,13 @@ def test_update_record(self):
431467
record, record.name, record.type, record.data, extra=new_extra
432468
)
433469

470+
sent = DurableDNSMockHttp.history.pop()
471+
self.assertEqual(sent.method, "POST")
472+
self.assertEqual(sent.url, "/services/dns/updateRecord.php")
473+
self.assertIn(":zonename>myzone.com.</", sent.body)
474+
self.assertIn(":name>record1</", sent.body)
475+
self.assertIn(":ttl>4500</", sent.body)
476+
434477
self.assertEqual(updated_record.data, "192.168.0.1")
435478
self.assertEqual(updated_record.id, "353286987")
436479
self.assertEqual(updated_record.name, "record1")
@@ -496,6 +539,13 @@ def test_delete_zone(self):
496539
extra=z_extra,
497540
)
498541
status = self.driver.delete_zone(zone=zone)
542+
543+
sent = DurableDNSMockHttp.history.pop()
544+
self.assertEqual(sent.method, "POST")
545+
self.assertEqual(sent.url, "/services/dns/deleteZone.php")
546+
data = sent.body.decode()
547+
self.assertIn(":zonename>myzone.com.</", data)
548+
499549
self.assertTrue(status)
500550

501551
def test_delete_zone_zone_does_not_exist(self):
@@ -555,6 +605,14 @@ def test_delete_record(self):
555605
extra=extra,
556606
)
557607
status = self.driver.delete_record(record=record)
608+
609+
sent = DurableDNSMockHttp.history.pop()
610+
self.assertEqual(sent.method, "POST")
611+
self.assertEqual(sent.url, "/services/dns/deleteRecord.php")
612+
data = sent.body.decode()
613+
self.assertIn(":zonename>myzone.com.</", data)
614+
self.assertIn(":id>353286987</", data)
615+
558616
self.assertTrue(status)
559617

560618
def test_delete_record_record_does_not_exist(self):
@@ -608,6 +666,7 @@ def test_delete_record_zone_does_not_exist(self):
608666

609667
class DurableDNSMockHttp(MockHttp):
610668
fixtures = DNSFileFixtures("durabledns")
669+
keep_history = True
611670

612671
def _services_dns_listZones_php(self, method, url, body, headers):
613672
body = self.fixtures.load("list_zones.xml")

0 commit comments

Comments
 (0)