also store json result in local request

This commit is contained in:
Miroslav Batchkarov 2017-06-05 16:24:23 +01:00
parent 3b464782ef
commit 199fa50a9d
2 changed files with 22 additions and 1 deletions

View File

@ -26,6 +26,7 @@ class SanicTestClient:
session, method.lower())(url, *args, **kwargs) as response: session, method.lower())(url, *args, **kwargs) as response:
try: try:
response.text = await response.text() response.text = await response.text()
response.json = await response.json()
except UnicodeDecodeError as e: except UnicodeDecodeError as e:
response.text = None response.text = None
response.body = await response.read() response.body = await response.read()

View File

@ -9,10 +9,12 @@ import pytest
from random import choice from random import choice
from sanic import Sanic from sanic import Sanic
from sanic.response import HTTPResponse, stream, StreamingHTTPResponse, file, file_stream from sanic.response import HTTPResponse, stream, StreamingHTTPResponse, file, file_stream, json
from sanic.testing import HOST, PORT from sanic.testing import HOST, PORT
from unittest.mock import MagicMock from unittest.mock import MagicMock
JSON_DATA = {'ok': True}
def test_response_body_not_a_string(): def test_response_body_not_a_string():
@ -34,6 +36,24 @@ async def sample_streaming_fn(response):
response.write('bar') response.write('bar')
@pytest.fixture
def json_app():
app = Sanic('json')
@app.route("/")
async def test(request):
return json(JSON_DATA)
return app
def test_json_response(json_app):
from sanic.response import json_dumps
request, response = json_app.test_client.get('/')
assert response.status == 200
assert response.text == json_dumps(JSON_DATA)
assert response.json == JSON_DATA
@pytest.fixture @pytest.fixture
def streaming_app(): def streaming_app():
app = Sanic('streaming') app = Sanic('streaming')