fix: update test assertions and lint fixes for Starlette 1.0 TemplateResponse API
Update test mocks to check kwargs["context"] instead of positional args[1] for tests that verify auth.py and base.py wrapper behavior. Fix B026 lint error by avoiding star-arg after keyword argument. Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com> Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/7b5f7e0d-89ad-43be-b68d-a9c0c5407a7e
This commit is contained in:
+1
-3
@@ -424,9 +424,7 @@ async def http_exception_handler(request: Request, exc: HTTPException):
|
|||||||
# For frontend routes, return appropriate HTML templates
|
# For frontend routes, return appropriate HTML templates
|
||||||
# Handle 404 errors with a custom template
|
# Handle 404 errors with a custom template
|
||||||
if exc.status_code == 404:
|
if exc.status_code == 404:
|
||||||
return _error_templates.TemplateResponse(
|
return _error_templates.TemplateResponse(request, "404.html", status_code=status.HTTP_404_NOT_FOUND)
|
||||||
request, "404.html", status_code=status.HTTP_404_NOT_FOUND
|
|
||||||
)
|
|
||||||
|
|
||||||
# For other HTTP errors, we could create specific templates or use a generic one
|
# For other HTTP errors, we could create specific templates or use a generic one
|
||||||
# For now, return a simple error page
|
# For now, return a simple error page
|
||||||
|
|||||||
+5
-4
@@ -174,17 +174,18 @@ def template_response_with_version(*args, **kwargs):
|
|||||||
name = args[0]
|
name = args[0]
|
||||||
if len(args) >= 2 and isinstance(args[1], dict):
|
if len(args) >= 2 and isinstance(args[1], dict):
|
||||||
context = args[1]
|
context = args[1]
|
||||||
remaining_args = args[2:]
|
# Old-style may have status_code as 3rd positional arg
|
||||||
|
if len(args) >= 3 and "status_code" not in kwargs:
|
||||||
|
kwargs["status_code"] = args[2]
|
||||||
else:
|
else:
|
||||||
context = kwargs.pop("context", {})
|
context = kwargs.pop("context", {})
|
||||||
remaining_args = args[1:]
|
|
||||||
request_obj = context.pop("request", None)
|
request_obj = context.pop("request", None)
|
||||||
if request_obj is not None:
|
if request_obj is not None:
|
||||||
context["request"] = request_obj
|
context["request"] = request_obj
|
||||||
_inject_global_context(context)
|
_inject_global_context(context)
|
||||||
if request_obj is not None:
|
if request_obj is not None:
|
||||||
return original_template_response(request_obj, name, context=context, *remaining_args, **kwargs)
|
return original_template_response(request_obj, name, context=context, **kwargs)
|
||||||
return original_template_response(name, context=context, *remaining_args, **kwargs)
|
return original_template_response(name, context=context, **kwargs)
|
||||||
|
|
||||||
# New-style call: (request, name, context=..., ...)
|
# New-style call: (request, name, context=..., ...)
|
||||||
if "context" in kwargs and isinstance(kwargs["context"], dict):
|
if "context" in kwargs and isinstance(kwargs["context"], dict):
|
||||||
|
|||||||
+3
-3
@@ -430,8 +430,8 @@ class TestLoginFunction:
|
|||||||
# Verify TemplateResponse was called with correct context
|
# Verify TemplateResponse was called with correct context
|
||||||
mock_templates.TemplateResponse.assert_called_once()
|
mock_templates.TemplateResponse.assert_called_once()
|
||||||
call_args = mock_templates.TemplateResponse.call_args
|
call_args = mock_templates.TemplateResponse.call_args
|
||||||
assert call_args[0][0] == "login.html"
|
assert call_args[0][1] == "login.html"
|
||||||
context = call_args[0][1]
|
context = call_args.kwargs["context"]
|
||||||
assert context["error"] == "Test error"
|
assert context["error"] == "Test error"
|
||||||
assert context["message"] == "Test message"
|
assert context["message"] == "Test message"
|
||||||
|
|
||||||
@@ -450,7 +450,7 @@ class TestLoginFunction:
|
|||||||
|
|
||||||
mock_templates.TemplateResponse.assert_called_once()
|
mock_templates.TemplateResponse.assert_called_once()
|
||||||
call_args = mock_templates.TemplateResponse.call_args
|
call_args = mock_templates.TemplateResponse.call_args
|
||||||
context = call_args[0][1]
|
context = call_args.kwargs["context"]
|
||||||
assert context["error"] is None
|
assert context["error"] is None
|
||||||
assert context["message"] is None
|
assert context["message"] is None
|
||||||
|
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ class TestLoginEndpoint:
|
|||||||
# Verify template was rendered with OAuth enabled
|
# Verify template was rendered with OAuth enabled
|
||||||
mock_templates.TemplateResponse.assert_called_once()
|
mock_templates.TemplateResponse.assert_called_once()
|
||||||
call_args = mock_templates.TemplateResponse.call_args
|
call_args = mock_templates.TemplateResponse.call_args
|
||||||
context = call_args[0][1]
|
context = call_args.kwargs["context"]
|
||||||
assert context["show_oauth"] is True
|
assert context["show_oauth"] is True
|
||||||
assert context["oauth_provider_name"] == "Test SSO"
|
assert context["oauth_provider_name"] == "Test SSO"
|
||||||
|
|
||||||
|
|||||||
@@ -69,8 +69,9 @@ class TestViewsBase:
|
|||||||
context = {"request": req}
|
context = {"request": req}
|
||||||
template_response_with_version("template.html", context)
|
template_response_with_version("template.html", context)
|
||||||
|
|
||||||
args, _ = mock_orig.call_args
|
args, kwargs = mock_orig.call_args
|
||||||
assert args[1].get("csrf_token") == "my-csrf"
|
context = kwargs.get("context", {})
|
||||||
|
assert context.get("csrf_token") == "my-csrf"
|
||||||
|
|
||||||
def test_kwargs_context_no_request(self):
|
def test_kwargs_context_no_request(self):
|
||||||
"""Test kwargs context path when request is not in context."""
|
"""Test kwargs context path when request is not in context."""
|
||||||
|
|||||||
@@ -345,7 +345,7 @@ class TestLoginPageSocialProviders:
|
|||||||
|
|
||||||
mock_templates.TemplateResponse.assert_called_once()
|
mock_templates.TemplateResponse.assert_called_once()
|
||||||
call_args = mock_templates.TemplateResponse.call_args
|
call_args = mock_templates.TemplateResponse.call_args
|
||||||
context = call_args.kwargs.get("context") or call_args[0][2] if len(call_args[0]) > 2 else {}
|
context = call_args.kwargs.get("context", {})
|
||||||
assert context["social_providers"] == mock_providers
|
assert context["social_providers"] == mock_providers
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@@ -371,7 +371,7 @@ class TestLoginPageSocialProviders:
|
|||||||
|
|
||||||
mock_templates.TemplateResponse.assert_called_once()
|
mock_templates.TemplateResponse.assert_called_once()
|
||||||
call_args = mock_templates.TemplateResponse.call_args
|
call_args = mock_templates.TemplateResponse.call_args
|
||||||
context = call_args.kwargs.get("context") or call_args[0][2] if len(call_args[0]) > 2 else {}
|
context = call_args.kwargs.get("context", {})
|
||||||
assert context["social_providers"] == {}
|
assert context["social_providers"] == {}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user