test_06_api_server.py 3.7 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 TestApiServer:
  10. """api role testing"""
  11. uri_prefix = '/api/server'
  12. server_id = {}
  13. server_data = {
  14. 'name': u'开发机01',
  15. 'host': u'127.0.0.1',
  16. }
  17. # should be equal to server_data_2.name
  18. server_name_2 = u'test02'
  19. server_data_2 = {
  20. 'name': u'test02',
  21. 'host': u'192.168.0.1',
  22. }
  23. server_data_remove = {
  24. 'name': u'this server will be deleted soon',
  25. 'host': u'11.22.33.44',
  26. }
  27. def test_create(self, user, testapp, client, db):
  28. """create successful."""
  29. # 1.create another role
  30. resp = client.post('%s/' % (self.uri_prefix), data=self.server_data)
  31. response_success(resp)
  32. compare_req_resp(self.server_data, resp)
  33. self.server_data['id'] = resp_json(resp)['data']['id']
  34. # f.write(str(self.server_data))
  35. # f.write(str(resp_json(resp)['data']['id']))
  36. # 2.create another role
  37. resp = client.post('%s/' % (self.uri_prefix), data=self.server_data_2)
  38. response_success(resp)
  39. compare_req_resp(self.server_data_2, resp)
  40. self.server_data_2['id'] = resp_json(resp)['data']['id']
  41. def test_one(self, user, testapp, client, db):
  42. """item successful."""
  43. # Goes to homepage
  44. resp = client.get('%s/%d' % (self.uri_prefix, self.server_data['id']))
  45. response_success(resp)
  46. compare_req_resp(self.server_data, resp)
  47. def test_get_list_page_size(self, user, testapp, client):
  48. """test list should create 2 users at least, due to test pagination, searching."""
  49. query = {
  50. 'page': 1,
  51. 'size': 1,
  52. }
  53. response = {
  54. 'count': 2,
  55. }
  56. resp = client.get('%s/?%s' % (self.uri_prefix, urllib.urlencode(query)))
  57. response_success(resp)
  58. resp_dict = resp_json(resp)
  59. compare_in(self.server_data_2, resp_dict['data']['list'].pop())
  60. compare_req_resp(response, resp)
  61. def test_get_list_query(self, user, testapp, client):
  62. """test list should create 2 users at least, due to test pagination, searching."""
  63. query = {
  64. 'page': 1,
  65. 'size': 1,
  66. 'kw': self.server_name_2
  67. }
  68. response = {
  69. 'count': 1,
  70. }
  71. resp = client.get('%s/?%s' % (self.uri_prefix, urllib.urlencode(query)))
  72. response_success(resp)
  73. resp_dict = resp_json(resp)
  74. compare_in(self.server_data_2, resp_dict['data']['list'].pop())
  75. compare_req_resp(response, resp)
  76. def test_get_update(self, user, testapp, client):
  77. """Login successful."""
  78. # 1.update
  79. server_data_2 = self.server_data_2
  80. server_data_2['name'] = 'Tester_edit'
  81. resp = client.put('%s/%d' % (self.uri_prefix, self.server_data_2['id']), data=server_data_2)
  82. response_success(resp)
  83. compare_req_resp(server_data_2, resp)
  84. # 3.get it
  85. resp = client.get('%s/%d' % (self.uri_prefix, self.server_data_2['id']))
  86. response_success(resp)
  87. compare_req_resp(server_data_2, resp)
  88. def test_get_remove(self, user, testapp, client):
  89. """Login successful."""
  90. # 1.create another role
  91. resp = client.post('%s/' % (self.uri_prefix), data=self.server_data_remove)
  92. server_id = resp_json(resp)['data']['id']
  93. response_success(resp)
  94. # 2.delete
  95. resp = client.delete('%s/%d' % (self.uri_prefix, server_id))
  96. response_success(resp)
  97. # 3.get it
  98. resp = client.get('%s/%d' % (self.uri_prefix, server_id))
  99. response_error(resp)