@@ -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
159220class 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