test_06_api_server.py 3.8 KB

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