@@ -27,6 +27,7 @@ class LinodeTests(unittest.TestCase):
2727 def setUp (self ):
2828 LinodeDNSDriverV4 .connectionCls .conn_class = LinodeMockHttpV4
2929 LinodeMockHttpV4 .type = None
30+ LinodeMockHttpV4 .history .clear ()
3031 self .driver = LinodeDNSDriver (* DNS_PARAMS_LINODE )
3132
3233 def test_correct_class_is_used (self ):
@@ -37,6 +38,11 @@ def test_unknown_api_version(self):
3738
3839 def test_list_zones (self ):
3940 zones = self .driver .list_zones ()
41+
42+ sent = LinodeMockHttpV4 .history .pop ()
43+ self .assertEqual (sent .method , "GET" )
44+ self .assertEqual (sent .url , "/v4/domains" )
45+
4046 self .assertEqual (len (zones ), 3 )
4147 zone = zones [0 ]
4248 self .assertEqual (zone .id , "123" )
@@ -47,6 +53,11 @@ def test_list_zones(self):
4753 def test_list_records (self ):
4854 zone = self .driver .list_zones ()[0 ]
4955 records = self .driver .list_records (zone )
56+
57+ sent = LinodeMockHttpV4 .history .pop ()
58+ self .assertEqual (sent .method , "GET" )
59+ self .assertEqual (sent .url , "/v4/domains/123/records" )
60+
5061 self .assertEqual (len (records ), 6 )
5162 record = records [0 ]
5263 self .assertEqual (record .id , "123" )
@@ -55,6 +66,11 @@ def test_list_records(self):
5566
5667 def test_get_zone (self ):
5768 zone = self .driver .get_zone ("123" )
69+
70+ sent = LinodeMockHttpV4 .history .pop ()
71+ self .assertEqual (sent .method , "GET" )
72+ self .assertEqual (sent .url , "/v4/domains/123" )
73+
5874 self .assertEqual (zone .id , "123" )
5975 self .assertEqual (zone .domain , "test.com" )
6076 self .assertEqual (zone .extra ["soa_email" ], "admin@test.com" )
@@ -67,6 +83,13 @@ def test_get_zone_not_found(self):
6783 def test_get_record_A_RECORD (self ):
6884 LinodeMockHttpV4 .type = "A_RECORD"
6985 record = self .driver .get_record ("123" , "123" )
86+
87+ # [0] /v4/domains/123/records/123
88+ # [1] /v4/domains/123
89+ sent = LinodeMockHttpV4 .history .pop (0 )
90+ self .assertEqual (sent .method , "GET" )
91+ self .assertEqual (sent .url , "/v4/domains/123/records/123" )
92+
7093 self .assertEqual (record .id , "123" )
7194 self .assertEqual (record .name , "test.example.com" )
7295 self .assertEqual (record .type , "A" )
@@ -83,6 +106,14 @@ def test_create_zone(self):
83106 ttl = 300
84107 extra = {"soa_email" : "admin@example.com" }
85108 zone = self .driver .create_zone (domain = domain , ttl = ttl , extra = extra )
109+
110+ sent = LinodeMockHttpV4 .history .pop ()
111+ self .assertEqual (sent .method , "POST" )
112+ self .assertEqual (sent .url , "/v4/domains" )
113+ self .assertEqual (sent .json ["domain" ], domain )
114+ self .assertEqual (sent .json ["ttl_sec" ], ttl )
115+ self .assertEqual (sent .json ["soa_email" ], extra ["soa_email" ])
116+
86117 self .assertEqual (zone .ttl , 300 )
87118 self .assertEqual (zone .domain , "example.com" )
88119 self .assertEqual (zone .extra ["soa_email" ], "admin@example.com" )
@@ -93,6 +124,14 @@ def test_create_record(self):
93124 type = RecordType .A
94125 data = "200.150.100.50"
95126 record = self .driver .create_record (name , zone , type , data )
127+
128+ sent = LinodeMockHttpV4 .history .pop ()
129+ self .assertEqual (sent .method , "POST" )
130+ self .assertEqual (sent .url , "/v4/domains/123/records" )
131+ self .assertEqual (sent .json ["name" ], name )
132+ self .assertEqual (sent .json ["type" ], "A" )
133+ self .assertEqual (sent .json ["target" ], data )
134+
96135 self .assertEqual (record .id , "123" )
97136 self .assertEqual (record .name , name )
98137 self .assertEqual (record .type , "A" )
@@ -104,6 +143,15 @@ def test_update_zone(self):
104143 ttl = 300
105144 extra = {"description" : "Testing" , "soa_email" : "admin@example.com" }
106145 updated_zone = self .driver .update_zone (zone , domain , ttl = ttl , extra = extra )
146+
147+ sent = LinodeMockHttpV4 .history .pop ()
148+ self .assertEqual (sent .method , "PUT" )
149+ self .assertEqual (sent .url , "/v4/domains/123" )
150+ self .assertEqual (sent .json ["domain" ], domain )
151+ self .assertEqual (sent .json ["ttl_sec" ], ttl )
152+ self .assertEqual (sent .json ["soa_email" ], extra ["soa_email" ])
153+ self .assertEqual (sent .json ["description" ], extra ["description" ])
154+
107155 self .assertEqual (updated_zone .domain , domain )
108156 self .assertEqual (updated_zone .ttl , ttl )
109157 self .assertEqual (updated_zone .extra ["soa_email" ], extra ["soa_email" ])
@@ -116,6 +164,14 @@ def test_update_record(self):
116164 data = "200.150.100.50"
117165 extra = {"ttl_sec" : 3600 }
118166 updated = self .driver .update_record (record , name = name , data = data , extra = extra )
167+
168+ sent = LinodeMockHttpV4 .history .pop ()
169+ self .assertEqual (sent .method , "PUT" )
170+ self .assertEqual (sent .url , "/v4/domains/123/records/123" )
171+ self .assertEqual (sent .json ["name" ], name )
172+ self .assertEqual (sent .json ["target" ], data )
173+ self .assertEqual (sent .json ["ttl_sec" ], extra ["ttl_sec" ])
174+
119175 self .assertEqual (updated .name , name )
120176 self .assertEqual (updated .ttl , extra ["ttl_sec" ])
121177 self .assertEqual (updated .data , data )
@@ -124,14 +180,23 @@ def test_delete_zone(self):
124180 zone = self .driver .list_zones ()[0 ]
125181 self .assertTrue (self .driver .delete_zone (zone ))
126182
183+ sent = LinodeMockHttpV4 .history .pop ()
184+ self .assertEqual (sent .method , "DELETE" )
185+ self .assertEqual (sent .url , "/v4/domains/123" )
186+
127187 def test_delete_record (self ):
128188 zone = self .driver .list_zones ()[0 ]
129189 record = self .driver .list_records (zone )[0 ]
130190 self .assertTrue (self .driver .delete_record (record ))
131191
192+ sent = LinodeMockHttpV4 .history .pop ()
193+ self .assertEqual (sent .method , "DELETE" )
194+ self .assertEqual (sent .url , "/v4/domains/123/records/123" )
195+
132196
133197class LinodeMockHttpV4 (MockHttp ):
134198 fixtures = DNSFileFixtures ("linode_v4" )
199+ keep_history = True
135200
136201 def _v4_domains (self , method , url , body , headers ):
137202 if method == "GET" :
0 commit comments