mirror of https://github.com/django/django.git
[4.2.x] Fixed #34428 -- Made ASGIStaticFilesHandler adapt response to async iterator.
Bug in0bd2c0c901
. Backport of02c356f2f3
from main
This commit is contained in:
parent
e829b0a239
commit
ae824eceb1
|
@ -103,4 +103,13 @@ class ASGIStaticFilesHandler(StaticFilesHandlerMixin, ASGIHandler):
|
|||
async def get_response_async(self, request):
|
||||
response = await super().get_response_async(request)
|
||||
response._resource_closers.append(request.close)
|
||||
# FileResponse is not async compatible.
|
||||
if response.streaming and not response.is_async:
|
||||
_iterator = response.streaming_content
|
||||
|
||||
async def awrapper():
|
||||
for part in await sync_to_async(list)(_iterator):
|
||||
yield part
|
||||
|
||||
response.streaming_content = awrapper()
|
||||
return response
|
||||
|
|
|
@ -116,7 +116,6 @@ class ASGITest(SimpleTestCase):
|
|||
"django.contrib.staticfiles.finders.FileSystemFinder",
|
||||
],
|
||||
)
|
||||
@ignore_warnings(module="django.http.response")
|
||||
async def test_static_file_response(self):
|
||||
application = ASGIStaticFilesHandler(get_asgi_application())
|
||||
# Construct HTTP request.
|
||||
|
|
Loading…
Reference in New Issue