Skip to content

Commit

Permalink
fix: Remove keyword only argument for RequestsMiddleware (#113)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
bradykieffer committed Dec 7, 2020
1 parent 021cfbb commit e704f28
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 3 deletions.
2 changes: 1 addition & 1 deletion google/cloud/logging_v2/handlers/middleware/request.py
Expand Up @@ -42,7 +42,7 @@ def _get_django_request():
class RequestMiddleware(MiddlewareMixin):
"""Saves the request in thread local"""

def __init__(self, *, get_response=None):
def __init__(self, get_response):
self.get_response = get_response

def process_request(self, request):
Expand Down
13 changes: 13 additions & 0 deletions tests/unit/handlers/middleware/test_request.py
Expand Up @@ -41,6 +41,9 @@ def _get_target_class(self):
return request.RequestMiddleware

def _make_one(self, *args, **kw):
if not args and "get_response" not in kw:
kw["get_response"] = None

return self._get_target_class()(*args, **kw)

def test_process_request(self):
Expand All @@ -54,6 +57,16 @@ def test_process_request(self):
django_request = request._get_django_request()
self.assertEqual(django_request, mock_request)

def test_can_instantiate_middleware_without_kwargs(self):
handler = mock.Mock()
middleware = self._make_one(handler)
self.assertEqual(middleware.get_response, handler)

def test_can_instantiate_middleware_with_kwargs(self):
handler = mock.Mock()
middleware = self._make_one(get_response=handler)
self.assertEqual(middleware.get_response, handler)


class Test__get_django_request(DjangoBase):
@staticmethod
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/handlers/test__helpers.py
Expand Up @@ -87,7 +87,7 @@ def test_no_context_header(self):

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

middleware = request.RequestMiddleware()
middleware = request.RequestMiddleware(None)
middleware.process_request(django_request)
trace_id = self._call_fut()
self.assertIsNone(trace_id)
Expand All @@ -104,7 +104,7 @@ def test_valid_context_header(self):
"/", **{django_trace_header: django_trace_id}
)

middleware = request.RequestMiddleware()
middleware = request.RequestMiddleware(None)
middleware.process_request(django_request)
trace_id = self._call_fut()

Expand Down

0 comments on commit e704f28

Please sign in to comment.