@@ -17,6 +17,22 @@ def nebula_connection():
1717 return connection
1818
1919
20+ def create_temp_app (nebula_connection_object , app ):
21+ app_conf = {
22+ "starting_ports" : [80 ],
23+ "containers_per" : {"server" : 1 },
24+ "env_vars" : {"TEST" : "test123" },
25+ "docker_image" : "nginx" ,
26+ "running" : True ,
27+ "volumes" : [],
28+ "networks" : ["nebula" , "bridge" ],
29+ "devices" : [],
30+ "privileged" : False ,
31+ "rolling_restart" : False
32+ }
33+ reply = nebula_connection_object .create_app (app , app_conf )
34+ return reply
35+
2036class BaseTests (TestCase ):
2137
2238 def test_check_api (self ):
@@ -25,56 +41,69 @@ def test_check_api(self):
2541 self .assertEqual (reply ["status_code" ], 200 )
2642 self .assertEqual (reply ["reply" ]["api_available" ], True )
2743
28- def test_create_app_success (self ):
29- # TODO - finish the tests
30- pass
31-
32- def test_create_app_already_exists (self ):
33- # TODO - finish the tests
34- pass
35-
36- def test_create_app_missing_params (self ):
37- # TODO - finish the tests
38- pass
39-
40- def test_delete_app_success (self ):
41- # TODO - finish the tests
42- pass
44+ def test_app_creation_flow (self , app = "unit_test_app" ):
45+ nebula_connection_object = nebula_connection ()
46+ # check app creation works
47+ reply = create_temp_app (nebula_connection_object , app )
48+ self .assertEqual (reply ["status_code" ], 200 )
49+ self .assertEqual (reply ["reply" ]["app_id" ], 1 )
50+ self .assertEqual (reply ["reply" ]["containers_per" ], {"server" : 1 })
51+ self .assertEqual (reply ["reply" ]["app_name" ], app )
52+ self .assertEqual (reply ["reply" ]["devices" ], [])
53+ self .assertEqual (reply ["reply" ]["docker_image" ], "nginx" )
54+ self .assertEqual (reply ["reply" ]["env_vars" ], {"TEST" : "test123" })
55+ self .assertEqual (reply ["reply" ]["networks" ], ["nebula" , "bridge" ])
56+ self .assertFalse (reply ["reply" ]["privileged" ])
57+ self .assertFalse (reply ["reply" ]["rolling_restart" ])
58+ self .assertTrue (reply ["reply" ]["running" ])
59+ self .assertEqual (reply ["reply" ]["starting_ports" ], [80 ])
60+ self .assertEqual (reply ["reply" ]["volumes" ], [])
61+ # check that the reply in the case of trying to reuse an existing app name noting breaks
62+ reply = create_temp_app (nebula_connection_object , app )
63+ self .assertEqual (reply ["status_code" ], 403 )
64+ # check app deletion works
65+ reply = nebula_connection_object .delete_app (app )
66+ self .assertEqual (reply ["status_code" ], 200 )
67+ self .assertEqual (reply ["reply" ], {})
68+ # check app creation failure with missing params
69+ reply = nebula_connection_object .create_app (app , {})
70+ self .assertEqual (reply ["status_code" ], 400 )
71+ self .assertTrue (isinstance (reply ["reply" ]["missing_parameters" ], list ))
4372
4473 def test_delete_app_does_not_exist (self , app = "test_app_which_does_not_exist" ):
4574 nebula_connection_object = nebula_connection ()
4675 # deleting twice so even if the app does exist prior to running the check it won't on the 2nd run
4776 nebula_connection_object .delete_app (app )
4877 reply = nebula_connection_object .delete_app (app )
4978 self .assertEqual (reply ["status_code" ], 403 )
50- self .assertEqual (reply ["reply" ]["app_exists" ], False )
79+ self .assertFalse (reply ["reply" ]["app_exists" ])
5180
5281 def test_list_apps (self ):
5382 nebula_connection_object = nebula_connection ()
5483 reply = nebula_connection_object .list_apps ()
5584 app_list = reply ["reply" ]["apps" ]
5685 self .assertEqual (reply ["status_code" ], 200 )
57- self .assertEqual (isinstance (app_list , list ), True )
86+ self .assertTrue (isinstance (app_list , list ))
5887 for app in app_list :
59- self .assertEqual (isinstance (app , unicode ), True )
88+ self .assertTrue (isinstance (app , unicode ))
6089
6190 def test_list_app_info (self , app = "test" ):
62- # TODO - create app before testing it & change the app default name to something that not likely to be used
91+ # TODO - change the app default name to something that not likely to be used
6392 nebula_connection_object = nebula_connection ()
6493 reply = nebula_connection_object .list_app_info (app )
6594 self .assertEqual (reply ["status_code" ], 200 )
66- self .assertEqual (isinstance (reply ["reply" ]["app_id" ], int ), True )
67- self .assertEqual (isinstance (reply ["reply" ]["containers_per" ], dict ), True )
95+ self .assertTrue (isinstance (reply ["reply" ]["app_id" ], int ))
96+ self .assertTrue (isinstance (reply ["reply" ]["containers_per" ], dict ))
6897 self .assertEqual (reply ["reply" ]["app_name" ], app )
69- self .assertEqual (isinstance (reply ["reply" ]["devices" ], list ), True )
70- self .assertEqual (isinstance (reply ["reply" ]["docker_image" ], unicode ), True )
71- self .assertEqual (isinstance (reply ["reply" ]["env_vars" ], dict ), True )
72- self .assertEqual (isinstance (reply ["reply" ]["networks" ], list ), True )
73- self .assertEqual (isinstance (reply ["reply" ]["privileged" ], bool ), True )
74- self .assertEqual (isinstance (reply ["reply" ]["rolling_restart" ], bool ), True )
75- self .assertEqual (isinstance (reply ["reply" ]["running" ], bool ), True )
76- self .assertEqual (isinstance (reply ["reply" ]["starting_ports" ], list ), True )
77- self .assertEqual (isinstance (reply ["reply" ]["volumes" ], list ), True )
98+ self .assertTrue (isinstance (reply ["reply" ]["devices" ], list ))
99+ self .assertTrue (isinstance (reply ["reply" ]["docker_image" ], unicode ))
100+ self .assertTrue (isinstance (reply ["reply" ]["env_vars" ], dict ))
101+ self .assertTrue (isinstance (reply ["reply" ]["networks" ], list ))
102+ self .assertTrue (isinstance (reply ["reply" ]["privileged" ], bool ))
103+ self .assertTrue (isinstance (reply ["reply" ]["rolling_restart" ], bool ))
104+ self .assertTrue (isinstance (reply ["reply" ]["running" ], bool ))
105+ self .assertTrue (isinstance (reply ["reply" ]["starting_ports" ], list ))
106+ self .assertTrue (isinstance (reply ["reply" ]["volumes" ], list ))
78107
79108 def test_stop_app (self ):
80109 # TODO - finish the tests
@@ -96,10 +125,10 @@ def test_prune_images(self):
96125 nebula_connection_object = nebula_connection ()
97126 reply = nebula_connection_object .prune_images ()
98127 self .assertEqual (reply ["status_code" ], 202 )
99- self .assertEqual (isinstance (reply ["reply" ]["prune_ids" ], dict ), True )
128+ self .assertTrue (isinstance (reply ["reply" ]["prune_ids" ], dict ))
100129
101130 def test_prune_device_group_images (self , device_group = "test" ):
102- # TODO - create device_group before testing & change device_group name to something that not likely to be used
131+ # TODO - change device_group name to something that not likely to be used
103132 nebula_connection_object = nebula_connection ()
104133 reply = nebula_connection_object .prune__device_group_images (device_group )
105134 first_prune_id = reply ["reply" ]["prune_id" ]
@@ -108,41 +137,41 @@ def test_prune_device_group_images(self, device_group="test"):
108137 self .assertEqual (reply ["reply" ]["prune_id" ], first_prune_id + 1 )
109138
110139 def test_list_device_group_info (self , device_group = "test" ):
111- # TODO - create app before testing it & change the app default name to something that not likely to be used
112- # TODO - create device_group before testing & change device_group name to something that not likely to be used
140+ # TODO -change the app default name to something that not likely to be used
141+ # TODO - change device_group name to something that not likely to be used
113142 nebula_connection_object = nebula_connection ()
114143 reply = nebula_connection_object .list_device_group_info (device_group )
115144 self .assertEqual (reply ["status_code" ], 200 )
116- self .assertEqual (isinstance (reply ["reply" ]["prune_id" ], int ), True )
117- self .assertEqual (isinstance (reply ["reply" ]["device_group_id" ], int ), True )
145+ self .assertTrue (isinstance (reply ["reply" ]["prune_id" ], int ))
146+ self .assertTrue (isinstance (reply ["reply" ]["device_group_id" ], int ))
118147 for app in reply ["reply" ]["apps" ]:
119- self .assertEqual (isinstance (app ["app_id" ], int ), True )
120- self .assertEqual (isinstance (app ["containers_per" ], dict ), True )
121- self .assertEqual (isinstance (app ["app_name" ], unicode ), True )
122- self .assertEqual (isinstance (app ["devices" ], list ), True )
123- self .assertEqual (isinstance (app ["docker_image" ], unicode ), True )
124- self .assertEqual (isinstance (app ["env_vars" ], dict ), True )
125- self .assertEqual (isinstance (app ["networks" ], list ), True )
126- self .assertEqual (isinstance (app ["privileged" ], bool ), True )
127- self .assertEqual (isinstance (app ["rolling_restart" ], bool ), True )
128- self .assertEqual (isinstance (app ["running" ], bool ), True )
129- self .assertEqual (isinstance (app ["starting_ports" ], list ), True )
130- self .assertEqual (isinstance (app ["volumes" ], list ), True )
148+ self .assertTrue (isinstance (app ["app_id" ], int ))
149+ self .assertTrue (isinstance (app ["containers_per" ], dict ))
150+ self .assertTrue (isinstance (app ["app_name" ], unicode ))
151+ self .assertTrue (isinstance (app ["devices" ], list ))
152+ self .assertTrue (isinstance (app ["docker_image" ], unicode ))
153+ self .assertTrue (isinstance (app ["env_vars" ], dict ))
154+ self .assertTrue (isinstance (app ["networks" ], list ))
155+ self .assertTrue (isinstance (app ["privileged" ], bool ))
156+ self .assertTrue (isinstance (app ["rolling_restart" ], bool ))
157+ self .assertTrue (isinstance (app ["running" ], bool ))
158+ self .assertTrue (isinstance (app ["starting_ports" ], list ))
159+ self .assertTrue (isinstance (app ["volumes" ], list ))
131160
132161 def test_list_device_group (self , device_group = "test" ):
133- # TODO - create device_group before testing & change device_group name to something that not likely to be used
162+ # TODO -change device_group name to something that not likely to be used
134163 nebula_connection_object = nebula_connection ()
135164 reply = nebula_connection_object .list_device_group (device_group )
136165 self .assertEqual (reply ["status_code" ], 200 )
137- self .assertEqual (isinstance (reply ["reply" ]["device_group_id" ], int ), True )
138- self .assertEqual (isinstance (reply ["reply" ]["apps" ], list ), True )
166+ self .assertTrue (isinstance (reply ["reply" ]["device_group_id" ], int ))
167+ self .assertTrue (isinstance (reply ["reply" ]["apps" ], list ))
139168 self .assertEqual (reply ["reply" ]["device_group" ], device_group )
140169
141170 def test_list_device_groups (self ):
142171 nebula_connection_object = nebula_connection ()
143172 reply = nebula_connection_object .list_device_groups ()
144173 self .assertEqual (reply ["status_code" ], 200 )
145- self .assertEqual (isinstance (reply ["reply" ]["device_groups" ], list ), True )
174+ self .assertTrue (isinstance (reply ["reply" ]["device_groups" ], list ))
146175
147176 def test_create_device_group_success (self ):
148177 # TODO - finish the tests
@@ -163,7 +192,7 @@ def test_delete_device_group_does_not_exists(self, device_group="test_non_existi
163192 nebula_connection_object .delete_device_group (device_group )
164193 reply = nebula_connection_object .delete_device_group (device_group )
165194 self .assertEqual (reply ["status_code" ], 403 )
166- self .assertEqual (reply ["reply" ]["device_group_exists" ], False )
195+ self .assertFalse (reply ["reply" ]["device_group_exists" ])
167196
168197 def test_update_device_group (self ):
169198 # TODO - finish the tests
0 commit comments