summaryrefslogtreecommitdiffstats
path: root/utils/test/result_collection_api/tests/unit/test_project.py
diff options
context:
space:
mode:
authorSerenaFeng <feng.xiaowei@zte.com.cn>2016-05-19 18:13:27 +0800
committerSerenaFeng <feng.xiaowei@zte.com.cn>2016-05-19 18:18:07 +0800
commitf25ad4e8a7e4bd6505b2144494da81fbcad40b7d (patch)
treec811d7b15048680d7d6717beb02bfbfa75aea717 /utils/test/result_collection_api/tests/unit/test_project.py
parent598be795dec8fa11bee7b6e140b33947ab35b8f0 (diff)
add unittests of project & refactor response
post body: {'href':'<http://ip:8000/pods/pod_name >'} get body: Pod/Project list body: list of Pod/Project update body: Pod/Project delete: no body JIRA: FUNCTEST-253 Change-Id: I28c6f5b35d8909d827f2f803197d95be4abd44bb Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
Diffstat (limited to 'utils/test/result_collection_api/tests/unit/test_project.py')
-rw-r--r--utils/test/result_collection_api/tests/unit/test_project.py116
1 files changed, 116 insertions, 0 deletions
diff --git a/utils/test/result_collection_api/tests/unit/test_project.py b/utils/test/result_collection_api/tests/unit/test_project.py
new file mode 100644
index 000000000..e79311197
--- /dev/null
+++ b/utils/test/result_collection_api/tests/unit/test_project.py
@@ -0,0 +1,116 @@
+import unittest
+
+from test_base import TestBase
+from resources.project_models import ProjectCreateRequest, Project, Projects
+from common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
+ HTTP_FORBIDDEN, HTTP_NOT_FOUND
+
+
+class TestProjectBase(TestBase):
+ def setUp(self):
+ super(TestProjectBase, self).setUp()
+ self.req_d = ProjectCreateRequest('vping', 'vping-ssh test')
+ self.req_e = ProjectCreateRequest('doctor', 'doctor test')
+ self.get_res = Project
+ self.list_res = Projects
+ self.update_res = Project
+ self.basePath = '/projects'
+
+ def assert_body(self, project, req=None):
+ if not req:
+ req = self.req_d
+ self.assertEqual(project.name, req.name)
+ self.assertEqual(project.description, req.description)
+ self.assertIsNotNone(project._id)
+ self.assertIsNotNone(project.creation_date)
+
+
+class TestProjectCreate(TestProjectBase):
+ def test_withoutBody(self):
+ (code, body) = self.create()
+ self.assertEqual(code, HTTP_BAD_REQUEST)
+
+ def test_success(self):
+ (code, body) = self.create_d()
+ self.assertEqual(code, HTTP_OK)
+ self.assert_create_body(body)
+
+ def test_alreadyExist(self):
+ self.create_d()
+ (code, body) = self.create_d()
+ self.assertEqual(code, HTTP_FORBIDDEN)
+ self.assertIn('already exists', body)
+
+
+class TestProjectGet(TestProjectBase):
+ def test_notExist(self):
+ code, body = self.get('notExist')
+ self.assertEqual(code, HTTP_NOT_FOUND)
+
+ def test_getOne(self):
+ self.create_d()
+ code, body = self.get(self.req_d.name)
+ self.assertEqual(code, HTTP_OK)
+ self.assert_body(body)
+
+ def test_list(self):
+ self.create_d()
+ self.create_e()
+ code, body = self.get()
+ for project in body.projects:
+ if self.req_d.name == project.name:
+ self.assert_body(project)
+ else:
+ self.assert_body(project, self.req_e)
+
+
+class TestProjectUpdate(TestProjectBase):
+ def test_withoutBody(self):
+ code, _ = self.update('noBody')
+ self.assertEqual(code, HTTP_BAD_REQUEST)
+
+ def test_notFound(self):
+ code, _ = self.update('notFound', self.req_e)
+ self.assertEqual(code, HTTP_NOT_FOUND)
+
+ def test_newNameExist(self):
+ self.create_d()
+ self.create_e()
+ code, body = self.update(self.req_d.name, self.req_e)
+ self.assertEqual(code, HTTP_FORBIDDEN)
+ self.assertIn("already exists", body)
+
+ def test_noUpdate(self):
+ self.create_d()
+ code, body = self.update(self.req_d.name, self.req_d)
+ self.assertEqual(code, HTTP_FORBIDDEN)
+ self.assertIn("Nothing to update", body)
+
+ def test_success(self):
+ self.create_d()
+ code, body = self.get(self.req_d.name)
+ _id = body._id
+
+ req = ProjectCreateRequest('newName', 'new description')
+ code, body = self.update(self.req_d.name, req)
+ self.assertEqual(code, HTTP_OK)
+ self.assertEqual(_id, body._id)
+ self.assert_body(body, req)
+
+ _, new_body = self.get(req.name)
+ self.assertEqual(_id, new_body._id)
+ self.assert_body(new_body, req)
+
+
+class TestProjectDelete(TestProjectBase):
+ def test_notFound(self):
+ code = self.delete('notFound')
+ self.assertEqual(code, HTTP_NOT_FOUND)
+
+ def test_success(self):
+ self.create_d()
+ code = self.delete(self.req_d.name)
+ self.assertEqual(code, HTTP_OK)
+
+if __name__ == '__main__':
+ unittest.main()