atst/tests/mocks.py
2018-06-26 10:31:39 -04:00

63 lines
1.7 KiB
Python

import tornado.gen
from tornado.httpclient import HTTPRequest, HTTPResponse
from atst.api_client import ApiClient
class MockApiClient(ApiClient):
def __init__(self, service):
self.service = service
@tornado.gen.coroutine
def get(self, path, **kwargs):
return self._get_response("GET", path)
@tornado.gen.coroutine
def put(self, path, **kwargs):
return self._get_response("PUT", path)
@tornado.gen.coroutine
def patch(self, path, **kwargs):
return self._get_response("PATCH", path)
@tornado.gen.coroutine
def post(self, path, **kwargs):
return self._get_response("POST", path)
@tornado.gen.coroutine
def delete(self, path, **kwargs):
return self._get_response("DELETE", path)
def _get_response(self, verb, path, code=200, json=None):
response = HTTPResponse(
request=HTTPRequest(path, verb),
code=code,
headers={"Content-Type": "application/json"},
)
setattr(response, "ok", 200 <= code < 300)
if json:
setattr(response, "json", json)
return response
class MockRequestsClient(MockApiClient):
@tornado.gen.coroutine
def get(self, path, **kwargs):
json = {
"id": "66b8ef71-86d3-48ef-abc2-51bfa1732b6b",
"creator": "49903ae7-da4a-49bf-a6dc-9dff5d004238",
"body": {},
}
return self._get_response("GET", path, 200, json=json)
@tornado.gen.coroutine
def post(self, path, **kwargs):
json = {
"id": "66b8ef71-86d3-48ef-abc2-51bfa1732b6b",
"creator": "49903ae7-da4a-49bf-a6dc-9dff5d004238",
"body": {},
}
return self._get_response("POST", path, 202, json=json)