Skip to content

Commit a818886

Browse files
author
Aaron Sierra
committed
nfsn: Add API request checking
1 parent d7de903 commit a818886

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

libcloud/test/dns/test_nfsn.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from libcloud.test import MockHttp, LibcloudTestCase
1919
from libcloud.dns.base import Zone, Record
2020
from libcloud.dns.types import RecordType, ZoneDoesNotExistError, RecordDoesNotExistError
21-
from libcloud.utils.py3 import httplib
21+
from libcloud.utils.py3 import httplib, urlparse
2222
from libcloud.dns.drivers.nfsn import NFSNDNSDriver
2323
from libcloud.test.file_fixtures import DNSFileFixtures
2424

@@ -27,6 +27,7 @@ class NFSNTestCase(LibcloudTestCase):
2727
def setUp(self):
2828
NFSNDNSDriver.connectionCls.conn_class = NFSNMockHttp
2929
NFSNMockHttp.type = None
30+
NFSNMockHttp.history.clear()
3031
self.driver = NFSNDNSDriver("testid", "testsecret")
3132

3233
self.test_zone = Zone(
@@ -57,6 +58,11 @@ def test_create_zone(self):
5758

5859
def test_get_zone(self):
5960
zone = self.driver.get_zone("example.com")
61+
62+
sent = NFSNMockHttp.history.pop()
63+
self.assertEqual(sent.method, "GET")
64+
self.assertEqual(sent.url, "/dns/example.com/serial")
65+
6066
self.assertEqual(zone.id, None)
6167
self.assertEqual(zone.domain, "example.com")
6268

@@ -69,6 +75,18 @@ def test_create_record(self):
6975
record = self.test_zone.create_record(
7076
name="newrecord", type=RecordType.A, data="127.0.0.1", extra={"ttl": 900}
7177
)
78+
79+
# [0] /dns/example.com/addRR
80+
# [1] /dns/example.com/listRRs
81+
sent = NFSNMockHttp.history.pop(0)
82+
self.assertEqual(sent.method, "POST")
83+
self.assertEqual(sent.url, "/dns/example.com/addRR")
84+
query = urlparse.parse_qs(sent.body)
85+
self.assertIn("newrecord", query["name"])
86+
self.assertIn("A", query["type"])
87+
self.assertIn("127.0.0.1", query["data"])
88+
self.assertIn("900", query["ttl"])
89+
7290
self.assertEqual(record.id, None)
7391
self.assertEqual(record.name, "newrecord")
7492
self.assertEqual(record.data, "127.0.0.1")
@@ -82,8 +100,20 @@ def test_get_record(self):
82100
def test_delete_record(self):
83101
self.assertTrue(self.test_record.delete())
84102

103+
sent = NFSNMockHttp.history.pop()
104+
self.assertEqual(sent.method, "POST")
105+
self.assertEqual(sent.url, "/dns/example.com/removeRR")
106+
query = urlparse.parse_qs(sent.body)
107+
self.assertIn("A", query["type"])
108+
self.assertIn("192.0.2.1", query["data"])
109+
85110
def test_list_records(self):
86111
records = self.driver.list_records(self.test_zone)
112+
113+
sent = NFSNMockHttp.history.pop()
114+
self.assertEqual(sent.method, "POST")
115+
self.assertEqual(sent.url, "/dns/example.com/listRRs")
116+
87117
self.assertEqual(len(records), 2)
88118

89119
def test_ex_get_records_by(self):
@@ -109,6 +139,7 @@ def test_delete_record_not_found(self):
109139

110140
class NFSNMockHttp(MockHttp):
111141
fixtures = DNSFileFixtures("nfsn")
142+
keep_history = True
112143
base_headers = {"content-type": "application/x-nfsn-api"}
113144

114145
def _dns_example_com_addRR_CREATED(self, method, url, body, headers):

0 commit comments

Comments
 (0)