@@ -39,6 +39,7 @@ def setUp(self):
3939 CloudFlareDNSDriver .MEMBERSHIPS_PAGE_SIZE = 5
4040 CloudFlareMockHttp .type = None
4141 CloudFlareMockHttp .use_param = "a"
42+ CloudFlareMockHttp .history .clear ()
4243 self .driver = CloudFlareDNSDriver (* DNS_PARAMS_CLOUDFLARE )
4344
4445 def test_auth_key (self ):
@@ -56,6 +57,11 @@ def test_list_record_types(self):
5657
5758 def test_list_zones (self ):
5859 zones = self .driver .list_zones ()
60+
61+ sent = CloudFlareMockHttp .history .pop ()
62+ self .assertEqual (sent .method , "GET" )
63+ self .assertEqual (sent .url .rsplit ("?" )[0 ], "/client/v4/zones" )
64+
5965 self .assertEqual (len (zones ), 1 )
6066
6167 zone = zones [0 ]
@@ -69,6 +75,10 @@ def test_list_zones(self):
6975 def test_get_record (self ):
7076 record = self .driver .get_record ("1234" , "364797364" )
7177
78+ sent = CloudFlareMockHttp .history .pop ()
79+ self .assertEqual (sent .method , "GET" )
80+ self .assertEqual (sent .url , "/client/v4/zones/1234/dns_records/364797364" )
81+
7282 self .assertEqual (record .id , "364797364" )
7383 self .assertIsNone (record .name )
7484 self .assertEqual (record .type , "A" )
@@ -85,6 +95,11 @@ def test_get_record_record_is_invalid(self):
8595 def test_list_records (self ):
8696 zone = self .driver .list_zones ()[0 ]
8797 records = self .driver .list_records (zone = zone )
98+
99+ sent = CloudFlareMockHttp .history .pop ()
100+ self .assertEqual (sent .method , "GET" )
101+ self .assertEqual (sent .url .rsplit ("?" )[0 ], f"/client/v4/zones/{ zone .id } /dns_records" )
102+
88103 self .assertEqual (len (records ), 11 )
89104
90105 record = records [0 ]
@@ -121,6 +136,11 @@ def test_list_records(self):
121136
122137 def test_get_zone (self ):
123138 zone = self .driver .get_zone (zone_id = "1234" )
139+
140+ sent = CloudFlareMockHttp .history .pop ()
141+ self .assertEqual (sent .method , "GET" )
142+ self .assertEqual (sent .url , "/client/v4/zones/1234" )
143+
124144 self .assertEqual (zone .id , "1234" )
125145 self .assertEqual (zone .domain , "example.com" )
126146 self .assertEqual (zone .type , "master" )
@@ -142,6 +162,15 @@ def test_create_record(self):
142162 data = "127.0.0.3" ,
143163 extra = {"proxied" : True },
144164 )
165+
166+ sent = CloudFlareMockHttp .history .pop ()
167+ self .assertEqual (sent .method , "POST" )
168+ self .assertEqual (sent .url , f"/client/v4/zones/{ zone .id } /dns_records" )
169+ self .assertEqual (sent .json ["type" ], "A" )
170+ self .assertEqual (sent .json ["name" ], "test5" )
171+ self .assertEqual (sent .json ["content" ], "127.0.0.3" )
172+ self .assertEqual (sent .json ["proxied" ], True )
173+
145174 self .assertEqual (record .id , "412561327" )
146175 self .assertEqual (record .name , "test5" )
147176 self .assertEqual (record .type , "A" )
@@ -154,6 +183,17 @@ def test_create_record_SSHFP_record_type(self):
154183 record = self .driver .create_record (
155184 name = "test_sshfp" , zone = zone , type = RecordType .SSHFP , data = "2 1 ABCDEF12345"
156185 )
186+
187+ sent = CloudFlareMockHttp .history .pop ()
188+ self .assertEqual (sent .method , "POST" )
189+ self .assertEqual (sent .url , f"/client/v4/zones/{ zone .id } /dns_records" )
190+ self .assertEqual (sent .json ["type" ], "SSHFP" )
191+ self .assertEqual (sent .json ["name" ], "test_sshfp" )
192+ self .assertEqual (sent .json ["content" ], None )
193+ self .assertEqual (
194+ sent .json ["data" ], {"algorithm" : "2" , "type" : "1" , "fingerprint" : "ABCDEF12345" }
195+ )
196+
157197 self .assertEqual (record .id , "200" )
158198 self .assertEqual (record .name , "test_sshfp" )
159199 self .assertEqual (record .type , "SSHFP" )
@@ -166,6 +206,14 @@ def test_create_record_CAA_record_type(self):
166206 record = self .driver .create_record (
167207 name = "test5" , zone = zone , type = RecordType .CAA , data = "0 issue caa.example.com"
168208 )
209+
210+ sent = CloudFlareMockHttp .history .pop ()
211+ self .assertEqual (sent .method , "POST" )
212+ self .assertEqual (sent .url , f"/client/v4/zones/{ zone .id } /dns_records" )
213+ self .assertEqual (sent .json ["type" ], "CAA" )
214+ self .assertEqual (sent .json ["name" ], "test5" )
215+ self .assertEqual (sent .json ["content" ], "0\t issue\t caa.example.com" )
216+
169217 self .assertEqual (record .id , "412561327" )
170218 self .assertEqual (record .name , "test5" )
171219 self .assertEqual (record .type , "A" )
@@ -214,6 +262,14 @@ def test_update_record(self):
214262 extra = {"proxied" : True },
215263 )
216264
265+ sent = CloudFlareMockHttp .history .pop ()
266+ self .assertEqual (sent .method , "PUT" )
267+ self .assertEqual (sent .url , f"/client/v4/zones/{ zone .id } /dns_records/{ record .id } " )
268+ self .assertEqual (sent .json ["type" ], "A" )
269+ self .assertEqual (sent .json ["name" ], "test6" )
270+ self .assertEqual (sent .json ["content" ], "127.0.0.4" )
271+ self .assertEqual (sent .json ["extra" ]["proxied" ], True )
272+
217273 self .assertEqual (updated_record .name , "test6" )
218274 self .assertEqual (updated_record .type , "A" )
219275 self .assertEqual (updated_record .data , "127.0.0.4" )
@@ -233,15 +289,33 @@ def test_delete_record(self):
233289 zone = self .driver .list_zones ()[0 ]
234290 record = zone .list_records ()[0 ]
235291 result = self .driver .delete_record (record = record )
292+
293+ sent = CloudFlareMockHttp .history .pop ()
294+ self .assertEqual (sent .method , "DELETE" )
295+ self .assertEqual (sent .url , f"/client/v4/zones/{ zone .id } /dns_records/{ record .id } " )
296+
236297 self .assertTrue (result )
237298
238299 def test_delete_zone (self ):
239300 zone = self .driver .list_zones ()[0 ]
240301 result = self .driver .delete_zone (zone = zone )
302+
303+ sent = CloudFlareMockHttp .history .pop ()
304+ self .assertEqual (sent .method , "DELETE" )
305+ self .assertEqual (sent .url , f"/client/v4/zones/{ zone .id } " )
306+
241307 self .assertTrue (result )
242308
243309 def test_create_zone (self ):
244310 zone = self .driver .create_zone (domain = "example2.com" , extra = {"jump_start" : False })
311+
312+ sent = CloudFlareMockHttp .history .pop ()
313+ self .assertEqual (sent .method , "POST" )
314+ self .assertEqual (sent .url , f"/client/v4/zones" )
315+ self .assertEqual (sent .json ["type" ], "full" )
316+ self .assertEqual (sent .json ["name" ], "example2.com" )
317+ self .assertEqual (sent .json ["jump_start" ], False )
318+
245319 self .assertEqual (zone .id , "6789" )
246320 self .assertEqual (zone .domain , "example2.com" )
247321
@@ -257,6 +331,11 @@ def test_update_zone(self):
257331
258332 updated_zone = self .driver .update_zone (zone = zone , domain = "" , extra = {"paused" : True })
259333
334+ sent = CloudFlareMockHttp .history .pop ()
335+ self .assertEqual (sent .method , "PATCH" )
336+ self .assertEqual (sent .url , f"/client/v4/zones/{ zone .id } " )
337+ self .assertEqual (sent .json ["paused" ], True )
338+
260339 self .assertEqual (zone .id , updated_zone .id )
261340 self .assertEqual (zone .domain , updated_zone .domain )
262341 self .assertEqual (zone .type , updated_zone .type )
@@ -312,6 +391,7 @@ def test_normalize_record_data_from_apu(self):
312391
313392class CloudFlareMockHttp (MockHttp , unittest .TestCase ):
314393 fixtures = DNSFileFixtures ("cloudflare" )
394+ keep_history = True
315395
316396 def _client_v4_memberships (self , method , url , body , headers ):
317397 if method not in {"GET" }:
0 commit comments