test_05_api_space.py 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. # -*- coding: utf-8 -*-
  2. """Test Apis."""
  3. import pytest
  4. from flask import current_app
  5. from utils import *
  6. @pytest.mark.usefixtures('db')
  7. class TestApiSpace:
  8. """api role testing"""
  9. uri_prefix = '/api/space'
  10. user_id = {}
  11. space_data = {
  12. 'name': u'大数据',
  13. 'user_id': u'1',
  14. 'members': json.dumps([{"user_id": 1, "role": "MASTER"}, {"user_id": 2, "role": "DEVELOPER"}, {"user_id": 3, "role": "DEVELOPER"}]),
  15. }
  16. space_name_2 = u'瓦力'
  17. space_data_2 = {
  18. 'name': u'瓦力',
  19. 'user_id': u'2',
  20. 'members': json.dumps([{"user_id": 1, "role": "MASTER"}, {"user_id": 2, "role": "DEVELOPER"}, {"user_id": 4, "role": "DEVELOPER"}]),
  21. }
  22. space_data_remove = {
  23. 'name': u'瓦尔登',
  24. 'user_id': u'2',
  25. 'members': json.dumps([{"user_id": 1, "role": "MASTER"}, {"user_id": 2, "role": "DEVELOPER"}]),
  26. }
  27. def test_create(self, user, testapp, client, db):
  28. """create successful."""
  29. # 1.create project
  30. resp = client.post('%s/' % (self.uri_prefix), data=self.space_data)
  31. response_success(resp)
  32. # compare_req_resp(self.space_data, resp)
  33. current_app.logger.info(resp_json(resp)['data'])
  34. self.compare_member_req_resp(self.space_data, resp)
  35. self.space_data['space_id'] = resp_json(resp)['data']['id']
  36. """create successful."""
  37. # 1.create another project
  38. resp = client.post('%s/' % (self.uri_prefix), data=self.space_data_2)
  39. response_success(resp)
  40. self.compare_member_req_resp(self.space_data_2, resp)
  41. self.space_data_2['space_id'] = resp_json(resp)['data']['id']
  42. # 2.create another space
  43. # resp = client.post('%s/' % (self.uri_prefix), data=self.space_data_2)
  44. # space_data_2 = self.get_list_ids(self.space_data_2)
  45. #
  46. # response_success(resp)
  47. # compare_req_resp(space_data_2, resp)
  48. # self.space_data_2['space_id'] = resp_json(resp)['data']['space_id']
  49. def test_one(self, user, testapp, client, db):
  50. """item successful."""
  51. resp = client.get('%s/%d' % (self.uri_prefix, self.space_data['space_id']))
  52. response_success(resp)
  53. self.compare_member_req_resp(self.space_data, resp)
  54. # def test_get_list_page_size(self, user, testapp, client):
  55. # """test list should create 2 users at least, due to test pagination, searching."""
  56. #
  57. # query = {
  58. # 'page': 1,
  59. # 'size': 1,
  60. # }
  61. # response = {
  62. # 'count': 2,
  63. # }
  64. # resp = client.get('%s/?%s' % (self.uri_prefix, urllib.urlencode(query)))
  65. # response_success(resp)
  66. # resp_dict = resp_json(resp)
  67. #
  68. # res = resp_dict['data']['list'].pop()
  69. # # f.write(str(res))
  70. #
  71. # # compare_in(self.space_data_2, resp_dict['data']['list'].pop())
  72. # space_data_2 = self.get_list_ids(self.space_data_2)
  73. # del space_data_2['user_id']
  74. #
  75. # compare_in(space_data_2, res)
  76. # compare_req_resp(response, resp)
  77. #
  78. # def test_get_list_query(self, user, testapp, client):
  79. # """test list should create 2 users at least, due to test pagination, searching."""
  80. # query = {
  81. # 'page': 1,
  82. # 'size': 1,
  83. # 'kw': self.space_name_2
  84. # }
  85. # response = {
  86. # 'count': 1,
  87. # }
  88. # resp = client.get('%s/?%s' % (self.uri_prefix, urllib.urlencode(query)))
  89. # response_success(resp)
  90. # resp_dict = resp_json(resp)
  91. # space_data_2 = self.get_list_ids(self.space_data_2)
  92. # del space_data_2['user_id']
  93. #
  94. # compare_in(space_data_2, resp_dict['data']['list'].pop())
  95. # compare_req_resp(response, resp)
  96. #
  97. def test_get_update(self, user, testapp, client):
  98. """Login successful."""
  99. # 1.update
  100. space_data_2 = self.space_data_2
  101. space_data_2['name'] = u'瓦力2.0'
  102. resp = client.put('%s/%d' % (self.uri_prefix, self.space_data_2['space_id']), data=space_data_2)
  103. response_success(resp)
  104. self.compare_member_req_resp(self.space_data_2, resp)
  105. # 2.get it
  106. resp = client.get('%s/%d' % (self.uri_prefix, self.space_data_2['space_id']))
  107. response_success(resp)
  108. response_success(resp)
  109. self.compare_member_req_resp(self.space_data_2, resp)
  110. # def test_get_remove(self, user, testapp, client):
  111. # """Login successful."""
  112. # # 1.create another role
  113. # resp = client.post('%s/' % (self.uri_prefix), data=self.space_data_remove)
  114. # space_id = resp_json(resp)['data']['space_id']
  115. # response_success(resp)
  116. #
  117. # # 2.delete
  118. # resp = client.delete('%s/%d' % (self.uri_prefix, space_id))
  119. # response_success(resp)
  120. #
  121. # # 3.get it
  122. # resp = client.get('%s/%d' % (self.uri_prefix, space_id))
  123. # response_error(resp)
  124. def compare_member_req_resp(self, request, response):
  125. for user_response in resp_json(response)['data']['members']:
  126. for user_request in json.loads(request['members']):
  127. if user_request['user_id'] == user_response['user_id']:
  128. assert user_request['role'] == user_response['role']