test_01_api_environment.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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. }
  16. user_name_2 = u'Production'
  17. env_data_2 = {
  18. 'env_name': u'Production',
  19. }
  20. env_data_remove = {
  21. 'env_name': u'environment_remove',
  22. }
  23. def test_create(self, user, testapp, client, db):
  24. """create successful."""
  25. # 1.create another role
  26. resp = client.post('%s/' % (self.uri_prefix), data=self.env_data)
  27. response_success(resp)
  28. compare_req_resp(self.env_data, resp)
  29. self.env_data['id'] = resp_json(resp)['data']['id']
  30. # f.write(str(self.env_data))
  31. # f.write(str(resp_json(resp)['data']['id']))
  32. # 2.create another role
  33. resp = client.post('%s/' % (self.uri_prefix), data=self.env_data_2)
  34. response_success(resp)
  35. compare_req_resp(self.env_data_2, resp)
  36. self.env_data_2['id'] = resp_json(resp)['data']['id']
  37. def test_one(self, user, testapp, client, db):
  38. """item successful."""
  39. # Goes to homepage
  40. resp = client.get('%s/%d' % (self.uri_prefix, self.env_data['id']))
  41. response_success(resp)
  42. compare_req_resp(self.env_data, resp)
  43. def test_get_list_page_size(self, user, testapp, client):
  44. """test list should create 2 users at least, due to test pagination, searching."""
  45. query = {
  46. 'page': 1,
  47. 'size': 1,
  48. }
  49. response = {
  50. 'count': 2,
  51. }
  52. resp = client.get('%s/?%s' % (self.uri_prefix, urllib.urlencode(query)))
  53. response_success(resp)
  54. resp_dict = resp_json(resp)
  55. compare_in(self.env_data_2, resp_dict['data']['list'].pop())
  56. compare_req_resp(response, resp)
  57. def test_get_list_query(self, user, testapp, client):
  58. """test list should create 2 users at least, due to test pagination, searching."""
  59. query = {
  60. 'page': 1,
  61. 'size': 1,
  62. 'kw': self.user_name_2
  63. }
  64. response = {
  65. 'count': 1,
  66. }
  67. resp = client.get('%s/?%s' % (self.uri_prefix, urllib.urlencode(query)))
  68. response_success(resp)
  69. resp_dict = resp_json(resp)
  70. compare_in(self.env_data_2, resp_dict['data']['list'].pop())
  71. compare_req_resp(response, resp)
  72. def test_get_update(self, user, testapp, client):
  73. """Login successful."""
  74. # 1.update
  75. env_data_2 = self.env_data_2
  76. env_data_2['env_name'] = 'Tester_edit'
  77. resp = client.put('%s/%d' % (self.uri_prefix, self.env_data_2['id']), data=env_data_2)
  78. response_success(resp)
  79. compare_req_resp(env_data_2, resp)
  80. # 3.get it
  81. resp = client.get('%s/%d' % (self.uri_prefix, self.env_data_2['id']))
  82. response_success(resp)
  83. compare_req_resp(env_data_2, resp)
  84. def test_get_remove(self, user, testapp, client):
  85. """Login successful."""
  86. # 1.create another role
  87. resp = client.post('%s/' % (self.uri_prefix), data=self.env_data_remove)
  88. env_id = resp_json(resp)['data']['id']
  89. response_success(resp)
  90. # 2.delete
  91. resp = client.delete('%s/%d' % (self.uri_prefix, env_id))
  92. response_success(resp)
  93. # 3.get it
  94. resp = client.get('%s/%d' % (self.uri_prefix, env_id))
  95. response_error(resp)