Skip to content

Commit 72d4571

Browse files
author
Aaron Sierra
committed
dns: onapp: Add API request checking
* Fix TTL in test_create_record_success() request
1 parent 00bc615 commit 72d4571

1 file changed

Lines changed: 63 additions & 1 deletion

File tree

libcloud/test/dns/test_onapp.py

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class OnAppDNSTests(LibcloudTestCase):
2828
def setUp(self):
2929
OnAppDNSDriver.connectionCls.conn_class = OnAppDNSMockHttp
3030
OnAppDNSMockHttp.type = None
31+
OnAppDNSMockHttp.history.clear()
3132
self.driver = OnAppDNSDriver(*DNS_PARAMS_ONAPP)
3233

3334
def assertHasKeys(self, dictionary, keys):
@@ -48,6 +49,11 @@ def test_list_record_types(self):
4849

4950
def test_list_zones_success(self):
5051
zones = self.driver.list_zones()
52+
53+
sent = OnAppDNSMockHttp.history.pop()
54+
self.assertEqual(sent.method, "GET")
55+
self.assertEqual(sent.url, "/dns_zones.json")
56+
5157
self.assertEqual(len(zones), 2)
5258

5359
zone1 = zones[0]
@@ -66,6 +72,11 @@ def test_list_zones_success(self):
6672

6773
def test_get_zone_success(self):
6874
zone1 = self.driver.get_zone(zone_id="1")
75+
76+
sent = OnAppDNSMockHttp.history.pop()
77+
self.assertEqual(sent.method, "GET")
78+
self.assertEqual(sent.url, "/dns_zones/1.json")
79+
6980
self.assertEqual(zone1.id, "1")
7081
self.assertEqual(zone1.type, "master")
7182
self.assertEqual(zone1.domain, "example.com")
@@ -82,6 +93,12 @@ def test_get_zone_not_found(self):
8293
def test_create_zone_success(self):
8394
OnAppDNSMockHttp.type = "CREATE"
8495
zone = self.driver.create_zone(domain="example.com")
96+
97+
sent = OnAppDNSMockHttp.history.pop()
98+
self.assertEqual(sent.method, "POST")
99+
self.assertEqual(sent.url, "/dns_zones.json")
100+
self.assertEqual(sent.json["dns_zone"]["name"], "example.com")
101+
85102
self.assertEqual(zone.id, "1")
86103
self.assertEqual(zone.domain, "example.com")
87104
self.assertEqual(zone.ttl, 1200)
@@ -93,9 +110,18 @@ def test_delete_zone(self):
93110
OnAppDNSMockHttp.type = "DELETE"
94111
self.assertTrue(self.driver.delete_zone(zone))
95112

113+
sent = OnAppDNSMockHttp.history.pop()
114+
self.assertEqual(sent.method, "DELETE")
115+
self.assertEqual(sent.url, "/dns_zones/1.json")
116+
96117
def test_list_records_success(self):
97118
zone = self.driver.get_zone(zone_id="1")
98119
records = self.driver.list_records(zone=zone)
120+
121+
sent = OnAppDNSMockHttp.history.pop()
122+
self.assertEqual(sent.method, "GET")
123+
self.assertEqual(sent.url, "/dns_zones/1/records.json")
124+
99125
self.assertEqual(len(records), 5)
100126

101127
record1 = records[0]
@@ -120,6 +146,13 @@ def test_list_records_success(self):
120146

121147
def test_get_record_success(self):
122148
record = self.driver.get_record(zone_id="1", record_id="123")
149+
150+
# [0] GET /dns_zones/1/records/123.json
151+
# [1] GET /dns_zones/1.json
152+
sent = OnAppDNSMockHttp.history.pop(0)
153+
self.assertEqual(sent.method, "GET")
154+
self.assertEqual(sent.url, "/dns_zones/1/records/123.json")
155+
123156
self.assertEqual(record.id, "123")
124157
self.assertEqual(record.name, "@")
125158
self.assertEqual(record.type, RecordType.A)
@@ -129,8 +162,17 @@ def test_create_record_success(self):
129162
zone = self.driver.get_zone(zone_id="1")
130163
OnAppDNSMockHttp.type = "CREATE"
131164
record = self.driver.create_record(
132-
name="blog", zone=zone, type=RecordType.A, data="123.156.189.2"
165+
name="blog", zone=zone, type=RecordType.A, data="123.156.189.2", extra={"ttl": 3600}
133166
)
167+
168+
sent = OnAppDNSMockHttp.history.pop()
169+
self.assertEqual(sent.method, "POST")
170+
self.assertEqual(sent.url, "/dns_zones/1/records.json")
171+
self.assertEqual(sent.json["dns_record"]["name"], "blog")
172+
self.assertEqual(sent.json["dns_record"]["type"], "A")
173+
self.assertEqual(sent.json["dns_record"]["ip"], "123.156.189.2")
174+
self.assertEqual(sent.json["dns_record"]["ttl"], 3600)
175+
134176
self.assertEqual(record.id, "111227")
135177
self.assertEqual(record.name, "blog")
136178
self.assertEqual(record.type, RecordType.A)
@@ -139,11 +181,25 @@ def test_create_record_success(self):
139181

140182
def test_update_record_success(self):
141183
record = self.driver.get_record(zone_id="1", record_id="123")
184+
OnAppDNSMockHttp.history.clear()
185+
142186
OnAppDNSMockHttp.type = "UPDATE"
143187
extra = {"ttl": 4500}
144188
record1 = self.driver.update_record(
145189
record=record, name="@", type=record.type, data="123.156.189.2", extra=extra
146190
)
191+
192+
# [0] PUT /dns_zones/1/records/123.json
193+
# [1] GET /dns_zones/1/records/123.json
194+
# [2] GET /dns_zones/1.json
195+
sent = OnAppDNSMockHttp.history.pop(0)
196+
self.assertEqual(sent.method, "PUT")
197+
self.assertEqual(sent.url, "/dns_zones/1/records/123.json")
198+
self.assertEqual(sent.json["dns_record"]["name"], "@")
199+
self.assertEqual(sent.json["dns_record"]["type"], "A")
200+
self.assertEqual(sent.json["dns_record"]["ip"], "123.156.189.2")
201+
self.assertEqual(sent.json["dns_record"]["ttl"], 4500)
202+
147203
self.assertEqual(record.data["ip"], "123.156.189.1")
148204
self.assertEqual(record.ttl, 3600)
149205
self.assertEqual(record1.data["ip"], "123.156.189.2")
@@ -153,11 +209,17 @@ def test_delete_record_success(self):
153209
record = self.driver.get_record(zone_id="1", record_id="123")
154210
OnAppDNSMockHttp.type = "DELETE"
155211
status = self.driver.delete_record(record=record)
212+
213+
sent = OnAppDNSMockHttp.history.pop()
214+
self.assertEqual(sent.method, "DELETE")
215+
self.assertEqual(sent.url, "/dns_zones/1/records/123.json")
216+
156217
self.assertTrue(status)
157218

158219

159220
class OnAppDNSMockHttp(MockHttp):
160221
fixtures = DNSFileFixtures("onapp")
222+
keep_history = True
161223

162224
def _dns_zones_json(self, method, url, body, headers):
163225
body = self.fixtures.load("list_zones.json")

0 commit comments

Comments
 (0)