Skip to content

Commit 4344506

Browse files
author
Naor Livne
committed
added app creation flow unit test
1 parent 11de7fe commit 4344506

File tree

1 file changed

+82
-53
lines changed

1 file changed

+82
-53
lines changed

tests.py

Lines changed: 82 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
2036
class 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

Comments
 (0)