33from __future__ import division
44from __future__ import absolute_import
55
6- from upcloud_api import ZONE , Server , Storage , login_user_block
6+ from upcloud_api import ZONE , Server , Storage , IPAddress , login_user_block
77
88from conftest import Mock
99import json
@@ -82,7 +82,7 @@ def test_server_prepare_post_body(self):
8282 assert body ['server' ]['zone' ] == 'us-chi1'
8383
8484 def test_server_prepare_post_body_optional_attributes (self ):
85- server = Server (
85+ server1 = Server (
8686 core_number = 2 ,
8787 memory_amount = 1024 ,
8888 hostname = 'my.example.com' ,
@@ -97,26 +97,62 @@ def test_server_prepare_post_body_optional_attributes(self):
9797 password_delivery = 'email' ,
9898 login_user = login_user_block ('upclouduser' , ['this-is-a-SSH-key' ]),
9999 avoid_host = '12345678' ,
100- user_data = 'https://my.script.com/some_script.py'
100+ user_data = 'https://my.script.com/some_script.py' ,
101+ ip_addresses = [
102+ IPAddress (family = 'IPv4' , access = 'public' ),
103+ IPAddress (family = 'IPv6' , access = 'public' )
104+ ]
101105 )
102106
103- body = server .prepare_post_body ()
104- assert body ['server' ]['title' ] == 'my.example.com'
105- assert body ['server' ]['core_number' ] == 2
106- assert body ['server' ]['memory_amount' ] == 1024
107- assert body ['server' ]['hostname' ] == server .title
108- assert body ['server' ]['zone' ] == 'us-chi1'
109- assert body ['server' ]['vnc_password' ] == 'my-passwd'
110- assert body ['server' ]['password_delivery' ] == 'email'
111- assert body ['server' ]['login_user' ] == {
112- 'username' : 'upclouduser' ,
113- 'create_password' : 'yes' ,
114- 'ssh_keys' : {
115- 'ssh_key' : ['this-is-a-SSH-key' ]
116- }
107+
108+ server2_dict = {
109+ 'core_number' :2 ,
110+ 'memory_amount' :1024 ,
111+ 'hostname' :'my.example.com' ,
112+ 'zone' : ZONE .Chicago ,
113+ 'storage_devices' :[
114+ {'os' : 'Ubuntu 14.04' , 'size' : 10 }
115+ ],
116+ 'vnc_password' : 'my-passwd' ,
117+ 'password_delivery' : 'email' ,
118+ 'login_user' : login_user_block ('upclouduser' , ['this-is-a-SSH-key' ]),
119+ 'avoid_host' : '12345678' ,
120+ 'user_data' : 'https://my.script.com/some_script.py' ,
121+ 'ip_addresses' : [
122+ {'family' :'IPv4' , 'access' :'public' },
123+ {'family' :'IPv6' , 'access' :'public' }
124+ ]
117125 }
118- assert body ['server' ]['avoid_host' ] == '12345678'
119- assert body ['server' ]['user_data' ] == 'https://my.script.com/some_script.py'
126+ server2 = Server ._create_server_obj (server2_dict , cloud_manager = self )
127+
128+ body1 = server1 .prepare_post_body ()
129+ body2 = server2 .prepare_post_body ()
130+
131+
132+ for body in [body1 , body2 ]:
133+ assert body ['server' ]['title' ] == 'my.example.com'
134+ assert body ['server' ]['core_number' ] == 2
135+ assert body ['server' ]['memory_amount' ] == 1024
136+ assert body ['server' ]['hostname' ] == server1 .title
137+ assert body ['server' ]['zone' ] == 'us-chi1'
138+ assert body ['server' ]['vnc_password' ] == 'my-passwd'
139+ assert body ['server' ]['password_delivery' ] == 'email'
140+ assert body ['server' ]['login_user' ] == {
141+ 'username' : 'upclouduser' ,
142+ 'create_password' : 'yes' ,
143+ 'ssh_keys' : {
144+ 'ssh_key' : ['this-is-a-SSH-key' ]
145+ }
146+ }
147+ assert body ['server' ]['avoid_host' ] == '12345678'
148+ assert body ['server' ]['user_data' ] == 'https://my.script.com/some_script.py'
149+ assert body ['server' ]['ip_addresses' ] == {
150+ 'ip_address' : [
151+ {'family' : 'IPv4' , 'access' : 'public' },
152+ {'family' : 'IPv6' , 'access' : 'public' }
153+ ]
154+ }
155+
120156
121157 @responses .activate
122158 def test_create_server (self , manager ):
0 commit comments