4 from test_base import TestBase
5 from resources.pod_models import PodCreateRequest, \
6 PodCreateResponse, PodsGetResponse
7 from common.constants import HTTP_OK, HTTP_BAD_REQUEST, HTTP_FORBIDDEN
10 class TestPodCreate(TestBase):
11 req = PodCreateRequest(name='zte-1', mode='alive', details='zte pod 1')
13 def test_withoutBody(self):
14 res = self.create('/pods', body=None)
15 self.assertEqual(res.code, HTTP_BAD_REQUEST)
17 def test_success(self):
18 res = self.create('/pods', body=self.req.format())
19 self.assertEqual(res.code, HTTP_OK)
20 res_body = PodCreateResponse.from_dict(json.loads(res.body))
21 self._assertMeta(res_body.meta, True)
22 self._assertBody(res_body.pod)
24 def test_alreadyExist(self):
25 self.create('/pods', body=self.req.format())
26 res = self.create('/pods', body=self.req.format())
27 self.assertEqual(res.code, HTTP_FORBIDDEN)
28 self.assertIn('already exists', res.body)
30 def _assertMeta(self, meta, success):
31 self.assertEqual(meta.success, success)
33 self.assertEqual(meta.uri, '/pods/{}'.format(self.req.name))
35 def _assertBody(self, res):
36 self.assertEqual(res.name, self.req.name)
37 self.assertEqual(res.mode, self.req.mode)
38 self.assertEqual(res.details, self.req.details)
39 self.assertIsNotNone(res.creation_date)
40 self.assertIsNotNone(res._id)
43 class TestPodGet(TestBase):
44 def test_notExist(self):
45 res = self.get('/pods/notExist')
46 body = PodsGetResponse.from_dict(json.loads(res.body))
47 self._assertMeta(body.meta, 0)
49 def test_getOne(self):
50 self.create('/pods', body=TestPodCreate.req.format())
51 res = self.get('/pods/{}'.format(TestPodCreate.req.name))
52 body = PodsGetResponse.from_dict(json.loads(res.body))
53 self._assertMeta(body.meta, 1)
54 self._assertBody(TestPodCreate.req, body.pods[0])
57 req = PodCreateRequest(name='zte-2', mode='alive', details='zte pod 2')
58 self.create('/pods', body=TestPodCreate.req.format())
59 self.create('/pods', body=req.format())
60 res = self.get('/pods')
61 body = PodsGetResponse.from_dict(json.loads(res.body))
62 self._assertMeta(body.meta, 2)
64 if req.name == pod.name:
65 self._assertBody(req, pod)
67 self._assertBody(TestPodCreate.req, pod)
69 def _assertMeta(self, meta, total):
75 self.assertEqual(meta.total, total)
76 self.assertEqual(meta.success, check_success())
78 def _assertBody(self, req, res):
79 self.assertEqual(res.name, req.name)
80 self.assertEqual(res.mode, req.mode)
81 self.assertEqual(res.details, req.details)
82 self.assertIsNotNone(res.creation_date)
85 if __name__ == '__main__':