test_01_api_environment.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. # -*- coding: utf-8 -*-
  2. """Test Apis."""
  3. from flask import json
  4. import types
  5. import urllib
  6. import pytest
  7. from utils import *
  8. @pytest.mark.usefixtures('db')
  9. class TestApiEnv:
  10. """api role testing"""
  11. uri_prefix = '/api/environment'
  12. env_id = {}
  13. env_data = {
  14. 'env_name': u'测试环境',
  15. 'space_id': 1,
  16. }
  17. user_name_2 = u'Production'
  18. env_data_2 = {
  19. 'env_name': u'Production',
  20. 'space_id': 1,
  21. }
  22. env_data_remove = {
  23. 'env_name': u'environment_remove',
  24. 'space_id': 1,
  25. }
  26. def test_create(self, user, testapp, client, db):
  27. """create successful."""
  28. # 1.create another role
  29. resp = client.post('%s/' % (self.uri_prefix), data=self.env_data)
  30. response_success(resp)
  31. compare_req_resp(self.env_data, resp)
  32. self.env_data['id'] = resp_json(resp)['data']['id']
  33. # f.write(str(self.env_data))
  34. # f.write(str(resp_json(resp)['data']['id']))
  35. # 2.create another role
  36. resp = client.post('%s/' % (self.uri_prefix), data=self.env_data_2)
  37. response_success(resp)
  38. compare_req_resp(self.env_data_2, resp)
  39. self.env_data_2['id'] = resp_json(resp)['data']['id']
  40. def test_one(self, user, testapp, client, db):
  41. """item successful."""
  42. # Goes to homepage
  43. resp = client.get('%s/%d' % (self.uri_prefix, self.env_data['id']))
  44. response_success(resp)
  45. compare_req_resp(self.env_data, resp)
  46. def test_get_list_page_size(self, user, testapp, client):
  47. """test list should create 2 users at least, due to test pagination, searching."""
  48. query = {
  49. 'page': 1,
  50. 'size': 1,
  51. }
  52. response = {
  53. 'count': 2,
  54. }
  55. resp = client.get('%s/?%s' % (self.uri_prefix, urllib.urlencode(query)))
  56. response_success(resp)
  57. resp_dict = resp_json(resp)
  58. compare_in(self.env_data_2, resp_dict['data']['list'].pop())
  59. compare_req_resp(response, resp)
  60. def test_get_list_query(self, user, testapp, client):
  61. """test list should create 2 users at least, due to test pagination, searching."""
  62. query = {
  63. 'page': 1,
  64. 'size': 1,
  65. 'kw': self.user_name_2
  66. }
  67. response = {
  68. 'count': 1,
  69. }
  70. resp = client.get('%s/?%s' % (self.uri_prefix, urllib.urlencode(query)))
  71. response_success(resp)
  72. resp_dict = resp_json(resp)
  73. compare_in(self.env_data_2, resp_dict['data']['list'].pop())
  74. compare_req_resp(response, resp)
  75. def test_get_update(self, user, testapp, client):
  76. """Login successful."""
  77. # 1.update
  78. env_data_2 = self.env_data_2
  79. env_data_2['env_name'] = 'Tester_edit'
  80. resp = client.put('%s/%d' % (self.uri_prefix, self.env_data_2['id']), data=env_data_2)
  81. response_success(resp)
  82. compare_req_resp(env_data_2, resp)
  83. # 3.get it
  84. resp = client.get('%s/%d' % (self.uri_prefix, self.env_data_2['id']))
  85. response_success(resp)
  86. compare_req_resp(env_data_2, resp)
  87. def test_get_remove(self, user, testapp, client):
  88. """Login successful."""
  89. # 1.create another role
  90. resp = client.post('%s/' % (self.uri_prefix), data=self.env_data_remove)
  91. env_id = resp_json(resp)['data']['id']
  92. response_success(resp)
  93. # 2.delete
  94. resp = client.delete('%s/%d' % (self.uri_prefix, env_id))
  95. response_success(resp)
  96. # 3.get it
  97. resp = client.get('%s/%d' % (self.uri_prefix, env_id))
  98. response_error(resp)