@@ -28,6 +28,7 @@ class WorldWideDNSTests(unittest.TestCase):
2828 def setUp (self ):
2929 WorldWideDNSDriver .connectionCls .conn_class = WorldWideDNSMockHttp
3030 WorldWideDNSMockHttp .type = None
31+ WorldWideDNSMockHttp .history .clear ()
3132 self .driver = WorldWideDNSDriver (* DNS_PARAMS_WORLDWIDEDNS )
3233
3334 def assertHasKeys (self , dictionary , keys ):
@@ -46,6 +47,11 @@ def test_list_record_types(self):
4647
4748 def test_list_zones_success (self ):
4849 zones = self .driver .list_zones ()
50+
51+ sent = WorldWideDNSMockHttp .history .pop ()
52+ self .assertEqual (sent .method , "GET" )
53+ self .assertEqual (sent .url , "/api_dns_list_domain.asp" )
54+
4955 self .assertEqual (len (zones ), 1 )
5056
5157 zone = zones [0 ]
@@ -76,6 +82,12 @@ def test_list_zones_success(self):
7682 def test_list_records_success (self ):
7783 zone = self .driver .list_zones ()[0 ]
7884 records = self .driver .list_records (zone = zone )
85+
86+ sent = WorldWideDNSMockHttp .history .pop ()
87+ self .assertEqual (sent .method , "GET" )
88+ self .assertEqual (sent .url , "/api_dns_list_domain.asp" )
89+ self .assertIn ("niteowebsponsoredthisone.com" , sent .query ["DOMAIN" ])
90+
7991 self .assertEqual (len (records ), 3 )
8092
8193 www = records [0 ]
@@ -97,6 +109,12 @@ def test_list_records_zone_does_not_exist(self):
97109
98110 def test_get_zone_success (self ):
99111 zone = self .driver .get_zone (zone_id = "niteowebsponsoredthisone.com" )
112+
113+ sent = WorldWideDNSMockHttp .history .pop ()
114+ self .assertEqual (sent .method , "GET" )
115+ self .assertEqual (sent .url , "/api_dns_list_domain.asp" )
116+ self .assertIn ("niteowebsponsoredthisone.com" , sent .query ["DOMAIN" ])
117+
100118 self .assertEqual (zone .id , "niteowebsponsoredthisone.com" )
101119 self .assertEqual (zone .type , "master" )
102120 self .assertEqual (zone .domain , "niteowebsponsoredthisone.com" )
@@ -156,6 +174,17 @@ def test_get_record_record_does_not_exist(self):
156174
157175 def test_create_zone_success (self ):
158176 zone = self .driver .create_zone (domain = "niteowebsponsoredthisone.com" , type = "master" )
177+
178+ # [0] /api_dns_new_domain.asp
179+ # [1] /api_dns_list.asp
180+ # [2] /api_dns_list_domain.asp
181+ sent = WorldWideDNSMockHttp .history .pop (0 )
182+ self .assertEqual (sent .method , "GET" )
183+ self .assertEqual (sent .url , "/api_dns_new_domain.asp" )
184+ self .assertIn ("niteowebsponsoredthisone.com" , sent .query ["DOMAIN" ])
185+ self .assertIn ("1" , sent .query ["DYN" ])
186+ self .assertIn ("0" , sent .query ["TYPE" ])
187+
159188 self .assertEqual (zone .id , "niteowebsponsoredthisone.com" )
160189 self .assertEqual (zone .domain , "niteowebsponsoredthisone.com" )
161190 self .assertEqual (zone .ttl , "43200" )
@@ -173,6 +202,8 @@ def test_create_zone_validaton_error(self):
173202
174203 def test_update_zone_success (self ):
175204 zone = self .driver .list_zones ()[0 ]
205+ WorldWideDNSMockHttp .history .clear ()
206+
176207 WorldWideDNSMockHttp .type = "UPDATE_ZONE"
177208 updated_zone = self .driver .update_zone (
178209 zone = zone ,
@@ -181,6 +212,14 @@ def test_update_zone_success(self):
181212 extra = {"HOSTMASTER" : "mail.niteowebsponsoredthisone.com" },
182213 ) # noqa
183214
215+ sent = WorldWideDNSMockHttp .history .pop (0 )
216+ self .assertEqual (sent .method , "GET" )
217+ self .assertEqual (sent .url , "/api_dns_modify.asp" )
218+ self .assertNotIn ("ID" , sent .query )
219+ self .assertIn ("niteowebsponsoredthisone.com" , sent .query ["DOMAIN" ])
220+ self .assertIn ("3800" , sent .query ["TTL" ])
221+ self .assertIn ("mail.niteowebsponsoredthisone.com" , sent .query ["HOSTMASTER" ])
222+
184223 self .assertEqual (zone .extra ["HOSTMASTER" ], "hostmaster.niteowebsponsoredthisone.com" )
185224
186225 self .assertEqual (updated_zone .id , zone .id )
@@ -204,6 +243,8 @@ def test_update_zone_success(self):
204243
205244 def test_create_record_success (self ):
206245 zone = self .driver .list_zones ()[0 ]
246+ WorldWideDNSMockHttp .history .clear ()
247+
207248 WorldWideDNSMockHttp .type = "CREATE_RECORD"
208249 record = self .driver .create_record (
209250 name = "domain4" ,
@@ -213,6 +254,18 @@ def test_create_record_success(self):
213254 extra = {"entry" : 4 },
214255 )
215256
257+ # [0] /api_dns_modify.asp
258+ # [1] /api_dns_list_domain.asp
259+ sent = WorldWideDNSMockHttp .history .pop (0 )
260+ self .assertEqual (sent .method , "GET" )
261+ self .assertEqual (sent .url , "/api_dns_modify.asp" )
262+ self .assertNotIn ("ID" , sent .query )
263+ self .assertIn ("niteowebsponsoredthisone.com" , sent .query ["DOMAIN" ])
264+ self .assertIn ("domain4" , sent .query ["S4" ])
265+ self .assertIn ("A" , sent .query ["T4" ])
266+ self .assertIn ("0.0.0.4" , sent .query ["D4" ])
267+ self .assertIn ("43200" , sent .query ["TTL" ])
268+
216269 self .assertEqual (record .id , "4" )
217270 self .assertEqual (record .name , "domain4" )
218271 self .assertNotEqual (record .zone .extra .get ("S4" ), zone .extra .get ("S4" ))
@@ -279,6 +332,8 @@ def test_create_record_max_entry_reached_give_entry(self):
279332 def test_update_record_success (self ):
280333 zone = self .driver .list_zones ()[0 ]
281334 record = self .driver .get_record (zone .id , "1" )
335+ WorldWideDNSMockHttp .history .clear ()
336+
282337 WorldWideDNSMockHttp .type = "UPDATE_RECORD"
283338 record = self .driver .update_record (
284339 record = record ,
@@ -288,6 +343,18 @@ def test_update_record_success(self):
288343 extra = {"entry" : 1 },
289344 )
290345
346+ # [0] /api_dns_modify.asp
347+ # [1] /api_dns_list_domain.asp
348+ sent = WorldWideDNSMockHttp .history .pop (0 )
349+ self .assertEqual (sent .method , "GET" )
350+ self .assertEqual (sent .url , "/api_dns_modify.asp" )
351+ self .assertNotIn ("ID" , sent .query )
352+ self .assertIn ("niteowebsponsoredthisone.com" , sent .query ["DOMAIN" ])
353+ self .assertIn ("domain1" , sent .query ["S1" ])
354+ self .assertIn ("A" , sent .query ["T1" ])
355+ self .assertIn ("0.0.0.1" , sent .query ["D1" ])
356+ self .assertIn ("43200" , sent .query ["TTL" ])
357+
291358 self .assertEqual (record .id , "1" )
292359 self .assertEqual (record .name , "domain1" )
293360 self .assertNotEqual (record .zone .extra .get ("S1" ), zone .extra .get ("S1" ))
@@ -298,6 +365,12 @@ def test_update_record_success(self):
298365 def test_delete_zone_success (self ):
299366 zone = self .driver .list_zones ()[0 ]
300367 status = self .driver .delete_zone (zone = zone )
368+
369+ sent = WorldWideDNSMockHttp .history .pop ()
370+ self .assertEqual (sent .method , "GET" )
371+ self .assertEqual (sent .url , "/api_dns_delete_domain.asp" )
372+ self .assertIn ("niteowebsponsoredthisone.com" , sent .query ["DOMAIN" ])
373+
301374 self .assertTrue (status )
302375
303376 def test_delete_zone_does_not_exist (self ):
@@ -315,10 +388,25 @@ def test_delete_zone_does_not_exist(self):
315388 def test_delete_record_success (self ):
316389 zone = self .driver .list_zones ()[0 ]
317390 records = self .driver .list_records (zone = zone )
391+ WorldWideDNSMockHttp .history .clear ()
392+
318393 self .assertEqual (len (records ), 3 )
319394 record = records [1 ]
395+
320396 WorldWideDNSMockHttp .type = "DELETE_RECORD"
321397 status = self .driver .delete_record (record = record )
398+
399+ # [0] /api_dns_modify.asp
400+ # [1] /api_dns_list.asp
401+ # [2] /api_dns_list_domain.asp
402+ sent = WorldWideDNSMockHttp .history .pop (0 )
403+ self .assertEqual (sent .method , "GET" )
404+ self .assertEqual (sent .url , "/api_dns_modify.asp" )
405+ self .assertIn ("niteowebsponsoredthisone.com" , sent .query ["DOMAIN" ])
406+ self .assertIn ("www" , sent .query ["S1" ])
407+ self .assertIn ("NONE" , sent .query ["T2" ])
408+ self .assertIn ("@" , sent .query ["S3" ])
409+
322410 self .assertTrue (status )
323411 zone = self .driver .list_zones ()[0 ]
324412 records = self .driver .list_records (zone = zone )
@@ -327,6 +415,7 @@ def test_delete_record_success(self):
327415
328416class WorldWideDNSMockHttp (MockHttp ):
329417 fixtures = DNSFileFixtures ("worldwidedns" )
418+ keep_history = True
330419
331420 def _api_dns_list_asp (self , method , url , body , headers ):
332421 body = self .fixtures .load ("api_dns_list" )
0 commit comments