@@ -31,18 +31,30 @@ def setUp(self):
3131 DigitalOcean_v2_BaseDriver .connectionCls .conn_class = DigitalOceanDNSMockHttp
3232 DigitalOceanDNSDriver .connectionCls .conn_class = DigitalOceanDNSMockHttp
3333 DigitalOceanDNSMockHttp .type = None
34+ DigitalOceanDNSMockHttp .history .clear ()
3435 self .driver = DigitalOceanDNSDriver (* DIGITALOCEAN_v2_PARAMS )
3536
3637 def tearDown (self ):
3738 LibcloudConnection .type = None
3839 DigitalOceanDNSMockHttp .type = None
40+ DigitalOceanDNSMockHttp .history .clear ()
3941
4042 def test_list_zones (self ):
4143 zones = self .driver .list_zones ()
44+
45+ sent = DigitalOceanDNSMockHttp .history .pop ()
46+ self .assertEqual (sent .method , "GET" )
47+ self .assertEqual (sent .url , "/v2/domains" )
48+
4249 self .assertTrue (len (zones ) >= 1 )
4350
4451 def test_get_zone (self ):
4552 zone = self .driver .get_zone ("testdomain" )
53+
54+ sent = DigitalOceanDNSMockHttp .history .pop ()
55+ self .assertEqual (sent .method , "GET" )
56+ self .assertEqual (sent .url , "/v2/domains/testdomain" )
57+
4658 self .assertEqual (zone .id , "testdomain" )
4759
4860 def test_get_zone_not_found (self ):
@@ -52,12 +64,24 @@ def test_get_zone_not_found(self):
5264 def test_list_records (self ):
5365 zone = self .driver .get_zone ("testdomain" )
5466 records = self .driver .list_records (zone )
67+
68+ sent = DigitalOceanDNSMockHttp .history .pop ()
69+ self .assertEqual (sent .method , "GET" )
70+ self .assertEqual (sent .url , "/v2/domains/testdomain/records" )
71+
5572 self .assertTrue (len (records ) >= 1 )
5673 self .assertEqual (records [1 ].ttl , 1800 )
5774 self .assertEqual (records [4 ].ttl , None )
5875
5976 def test_get_record (self ):
6077 record = self .driver .get_record ("testdomain" , "1234564" )
78+
79+ # [0] '/v2/domains/testdomain/records/1234564'
80+ # [1] '/v2/domains/testdomain'
81+ sent = DigitalOceanDNSMockHttp .history [0 ]
82+ self .assertEqual (sent .method , "GET" )
83+ self .assertEqual (sent .url , "/v2/domains/testdomain/records/1234564" )
84+
6185 self .assertEqual (record .id , "1234564" )
6286 self .assertEqual (record .type , RecordType .A )
6387 self .assertEqual (record .data , "123.45.67.89" )
@@ -70,6 +94,12 @@ def test_get_record_not_found(self):
7094 def test_create_zone (self ):
7195 DigitalOceanDNSMockHttp .type = "CREATE"
7296 zone = self .driver .create_zone ("testdomain" )
97+
98+ sent = DigitalOceanDNSMockHttp .history .pop ()
99+ self .assertEqual (sent .method , "POST" )
100+ self .assertEqual (sent .url , "/v2/domains" )
101+ self .assertEqual (sent .json ["name" ], "testdomain" )
102+
73103 self .assertEqual (zone .id , "testdomain" )
74104
75105 def test_create_record (self ):
@@ -79,6 +109,15 @@ def test_create_record(self):
79109 record = self .driver .create_record (
80110 "sub" , zone , RecordType .A , "234.56.78.90" , extra = {"ttl" : 60 }
81111 )
112+
113+ sent = DigitalOceanDNSMockHttp .history .pop ()
114+ self .assertEqual (sent .method , "POST" )
115+ self .assertEqual (sent .url , f"/v2/domains/{ zone .domain } /records" )
116+ self .assertEqual (sent .json ["type" ], "A" )
117+ self .assertEqual (sent .json ["name" ], "sub" )
118+ self .assertEqual (sent .json ["data" ], "234.56.78.90" )
119+ self .assertEqual (sent .json ["ttl" ], 60 )
120+
82121 self .assertEqual (record .id , "1234565" )
83122 self .assertEqual (record .type , RecordType .A )
84123 self .assertEqual (record .data , "234.56.78.90" )
@@ -89,6 +128,15 @@ def test_update_record(self):
89128
90129 DigitalOceanDNSMockHttp .type = "UPDATE"
91130 record = self .driver .update_record (record , data = "234.56.78.90" , extra = {"ttl" : 60 })
131+
132+ sent = DigitalOceanDNSMockHttp .history .pop ()
133+ self .assertIn (sent .method , {"PATCH" , "PUT" })
134+ self .assertEqual (sent .url , f"/v2/domains/testdomain/records/{ record .id } " )
135+ self .assertEqual (sent .json ["type" ], "A" )
136+ self .assertEqual (sent .json ["name" ], "@" )
137+ self .assertEqual (sent .json ["data" ], "234.56.78.90" )
138+ self .assertEqual (sent .json ["ttl" ], 60 )
139+
92140 self .assertEqual (record .id , "1234564" )
93141 self .assertEqual (record .data , "234.56.78.90" )
94142 self .assertEqual (record .ttl , 60 )
@@ -99,15 +147,24 @@ def test_delete_zone(self):
99147 DigitalOceanDNSMockHttp .type = "DELETE"
100148 self .assertTrue (self .driver .delete_zone (zone ))
101149
150+ sent = DigitalOceanDNSMockHttp .history .pop ()
151+ self .assertEqual (sent .method , "DELETE" )
152+ self .assertEqual (sent .url , f"/v2/domains/{ zone .domain } " )
153+
102154 def test_delete_record (self ):
103155 record = self .driver .get_record ("testdomain" , "1234564" )
104156
105157 DigitalOceanDNSMockHttp .type = "DELETE"
106158 self .assertTrue (self .driver .delete_record (record ))
107159
160+ sent = DigitalOceanDNSMockHttp .history .pop ()
161+ self .assertIn (sent .method , "DELETE" )
162+ self .assertEqual (sent .url , f"/v2/domains/testdomain/records/{ record .id } " )
163+
108164
109165class DigitalOceanDNSMockHttp (MockHttp ):
110166 fixtures = DNSFileFixtures ("digitalocean" )
167+ keep_history = True
111168
112169 response_map = {
113170 None : httplib .OK ,
0 commit comments