Add Request.cancel_stream()
This commit is contained in:
@@ -6,7 +6,7 @@ from sanic.views import HTTPMethodView
|
||||
from sanic.views import stream as stream_decorator
|
||||
from sanic.response import stream, text
|
||||
|
||||
data = "abc" * 100000
|
||||
data = 'abc' * 100000
|
||||
|
||||
|
||||
def test_request_stream_method_view():
|
||||
@@ -49,6 +49,21 @@ def test_request_stream_app():
|
||||
|
||||
app = Sanic('test_request_stream_app')
|
||||
|
||||
contents = []
|
||||
|
||||
@app.post('/cancel_stream', stream=True)
|
||||
async def cancel_stream(request):
|
||||
assert isinstance(request.stream, asyncio.Queue)
|
||||
request.cancel_stream()
|
||||
result = ''
|
||||
while True:
|
||||
body = await request.stream.get()
|
||||
contents.append(body)
|
||||
if body is None:
|
||||
break
|
||||
result += body.decode('utf-8')
|
||||
return text(result)
|
||||
|
||||
@app.get('/get')
|
||||
async def get(request):
|
||||
assert request.stream is None
|
||||
@@ -122,6 +137,8 @@ def test_request_stream_app():
|
||||
|
||||
assert app.is_request_stream is True
|
||||
|
||||
assert len(contents) == 0
|
||||
|
||||
request, response = app.test_client.get('/get')
|
||||
assert response.status == 200
|
||||
assert response.text == 'GET'
|
||||
|
||||
Reference in New Issue
Block a user