Skip to content

Commit e704f28

Browse files
authored
fix: Remove keyword only argument for RequestsMiddleware (#113)
* fix: Remove keyword only argument for RequestsMiddleware Remove keyword only arguments from request middleware. This causes django to fail when attempting to load middleware. Django currently only supports handlers being passed in as args. * Test that we can instantiate middleware with or without kwargs * Make get_response a required parameter in RequestMiddleware
1 parent 021cfbb commit e704f28

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

google/cloud/logging_v2/handlers/middleware/request.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def _get_django_request():
4242
class RequestMiddleware(MiddlewareMixin):
4343
"""Saves the request in thread local"""
4444

45-
def __init__(self, *, get_response=None):
45+
def __init__(self, get_response):
4646
self.get_response = get_response
4747

4848
def process_request(self, request):

tests/unit/handlers/middleware/test_request.py

+13
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ def _get_target_class(self):
4141
return request.RequestMiddleware
4242

4343
def _make_one(self, *args, **kw):
44+
if not args and "get_response" not in kw:
45+
kw["get_response"] = None
46+
4447
return self._get_target_class()(*args, **kw)
4548

4649
def test_process_request(self):
@@ -54,6 +57,16 @@ def test_process_request(self):
5457
django_request = request._get_django_request()
5558
self.assertEqual(django_request, mock_request)
5659

60+
def test_can_instantiate_middleware_without_kwargs(self):
61+
handler = mock.Mock()
62+
middleware = self._make_one(handler)
63+
self.assertEqual(middleware.get_response, handler)
64+
65+
def test_can_instantiate_middleware_with_kwargs(self):
66+
handler = mock.Mock()
67+
middleware = self._make_one(get_response=handler)
68+
self.assertEqual(middleware.get_response, handler)
69+
5770

5871
class Test__get_django_request(DjangoBase):
5972
@staticmethod

tests/unit/handlers/test__helpers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def test_no_context_header(self):
8787

8888
django_request = RequestFactory().get("/")
8989

90-
middleware = request.RequestMiddleware()
90+
middleware = request.RequestMiddleware(None)
9191
middleware.process_request(django_request)
9292
trace_id = self._call_fut()
9393
self.assertIsNone(trace_id)
@@ -104,7 +104,7 @@ def test_valid_context_header(self):
104104
"/", **{django_trace_header: django_trace_id}
105105
)
106106

107-
middleware = request.RequestMiddleware()
107+
middleware = request.RequestMiddleware(None)
108108
middleware.process_request(django_request)
109109
trace_id = self._call_fut()
110110

0 commit comments

Comments
 (0)