@@ -126,6 +126,14 @@ class TestNetworksClient(object):
126126 def networks_client (self ):
127127 return NetworksClient (client = mock .MagicMock ())
128128
129+ @pytest .fixture ()
130+ def network_subnet (self ):
131+ return NetworkSubnet (type = "server" , ip_range = "10.0.1.0/24" , network_zone = "eu-central" )
132+
133+ @pytest .fixture ()
134+ def network_route (self ):
135+ return NetworkRoute (destination = "10.100.1.0/24" , gateway = "10.0.1.1" )
136+
129137 def test_get_by_id (self , networks_client , network_response ):
130138 networks_client ._client .request .return_value = network_response
131139 bound_network = networks_client .get_by_id (1 )
@@ -195,3 +203,94 @@ def test_get_by_name(self, networks_client, one_network_response):
195203 assert bound_network ._client is networks_client
196204 assert bound_network .id == 1
197205 assert bound_network .name == "mynet"
206+
207+ def test_create (self , networks_client , network_create_response ):
208+ networks_client ._client .request .return_value = network_create_response
209+ networks_client .create (
210+ name = "mynet" ,
211+ ip_range = "10.0.0.0/8"
212+ )
213+ networks_client ._client .request .assert_called_with (
214+ url = "/networks" ,
215+ method = "POST" ,
216+ json = {
217+ 'name' : "mynet" ,
218+ 'ip_range' : "10.0.0.0/8" ,
219+ }
220+ )
221+
222+ def test_create_with_subnet (self , networks_client , network_subnet , network_create_response ):
223+ networks_client ._client .request .return_value = network_create_response
224+ networks_client .create (
225+ name = "mynet" ,
226+ ip_range = "10.0.0.0/8" ,
227+ subnets = [network_subnet ]
228+ )
229+ networks_client ._client .request .assert_called_with (
230+ url = "/networks" ,
231+ method = "POST" ,
232+ json = {
233+ 'name' : "mynet" ,
234+ 'ip_range' : "10.0.0.0/8" ,
235+ 'subnets' : [
236+ {
237+ 'type' : "server" ,
238+ 'ip_range' : "10.0.1.0/24" ,
239+ 'network_zone' : "eu-central"
240+ }
241+ ]
242+ }
243+ )
244+
245+ def test_create_with_route (self , networks_client , network_route , network_create_response ):
246+ networks_client ._client .request .return_value = network_create_response
247+ networks_client .create (
248+ name = "mynet" ,
249+ ip_range = "10.0.0.0/8" ,
250+ routes = [network_route ]
251+ )
252+ networks_client ._client .request .assert_called_with (
253+ url = "/networks" ,
254+ method = "POST" ,
255+ json = {
256+ 'name' : "mynet" ,
257+ 'ip_range' : "10.0.0.0/8" ,
258+ 'routes' : [
259+ {
260+ 'destination' : "10.100.1.0/24" ,
261+ 'gateway' : "10.0.1.1" ,
262+ }
263+ ]
264+ }
265+ )
266+
267+ def test_create_with_route_and_subnet (self , networks_client , network_subnet , network_route ,
268+ network_create_response ):
269+ networks_client ._client .request .return_value = network_create_response
270+ networks_client .create (
271+ name = "mynet" ,
272+ ip_range = "10.0.0.0/8" ,
273+ subnets = [network_subnet ],
274+ routes = [network_route ]
275+ )
276+ networks_client ._client .request .assert_called_with (
277+ url = "/networks" ,
278+ method = "POST" ,
279+ json = {
280+ 'name' : "mynet" ,
281+ 'ip_range' : "10.0.0.0/8" ,
282+ 'subnets' : [
283+ {
284+ 'type' : "server" ,
285+ 'ip_range' : "10.0.1.0/24" ,
286+ 'network_zone' : "eu-central"
287+ }
288+ ],
289+ 'routes' : [
290+ {
291+ 'destination' : "10.100.1.0/24" ,
292+ 'gateway' : "10.0.1.1" ,
293+ }
294+ ]
295+ }
296+ )
0 commit comments