Fixed #31407 -- Adjusted test to avoid coroutine never awaited warning.

This commit is contained in:
Mark 2020-04-07 20:32:54 +02:00 committed by GitHub
parent 26799c6503
commit 590957a0eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 6 deletions

View File

@ -269,9 +269,10 @@ class AsyncHandlerRequestTests(SimpleTestCase):
async def test_unawaited_response(self):
msg = (
"The view handlers.views.async_unawaited didn't return an "
"HttpResponse object. It returned an unawaited coroutine instead. "
"You may need to add an 'await' into your view."
"The view handlers.views.CoroutineClearingView.__call__ didn't"
" return an HttpResponse object. It returned an unawaited"
" coroutine instead. You may need to add an 'await'"
" into your view."
)
with self.assertRaisesMessage(ValueError, msg):
await self.async_client.get('/unawaited/')

View File

@ -51,6 +51,12 @@ async def async_regular(request):
return HttpResponse(b'regular content')
async def async_unawaited(request):
"""Return an unawaited coroutine (common error for async views)."""
return asyncio.sleep(0)
class CoroutineClearingView:
def __call__(self, request):
"""Return an unawaited coroutine (common error for async views)."""
# Store coroutine to suppress 'unawaited' warning message
self._unawaited_coroutine = asyncio.sleep(0)
return self._unawaited_coroutine
async_unawaited = CoroutineClearingView()