Răsfoiți Sursa

Added test for non-HTTP request on ASGIStaticFilesHandler.

Carlton Gibson 2 ani în urmă
părinte
comite
88e67a54b7
1 a modificat fișierele cu 19 adăugiri și 0 ștergeri
  1. 19 0
      tests/staticfiles_tests/test_handlers.py

+ 19 - 0
tests/staticfiles_tests/test_handlers.py

@@ -5,6 +5,13 @@ from django.test import AsyncRequestFactory
 from .cases import StaticFilesTestCase
 
 
+class MockApplication:
+    """ASGI application that returns a string indicating that it was called."""
+
+    async def __call__(self, scope, receive, send):
+        return "Application called"
+
+
 class TestASGIStaticFilesHandler(StaticFilesTestCase):
     async_request_factory = AsyncRequestFactory()
 
@@ -20,3 +27,15 @@ class TestASGIStaticFilesHandler(StaticFilesTestCase):
         handler = ASGIStaticFilesHandler(ASGIHandler())
         response = await handler.get_response_async(request)
         self.assertEqual(response.status_code, 404)
+
+    async def test_non_http_requests_passed_to_the_wrapped_application(self):
+        tests = [
+            "/static/path.txt",
+            "/non-static/path.txt",
+        ]
+        for path in tests:
+            with self.subTest(path=path):
+                scope = {"type": "websocket", "path": path}
+                handler = ASGIStaticFilesHandler(MockApplication())
+                response = await handler(scope, None, None)
+                self.assertEqual(response, "Application called")