change get_user to use a protocol requiring a session (#522)

* change get_user to use a protocol requiring a session
define a "_HasSession" protocol, and update contrib.auth.get_user to use it
get_user only requires a session field, and idiomatic django testing frequently calls get_user with a TestClient

* run black

* use union for get_user instead of a protocol

* create tests for get_user typechecking

* properly import test client
This commit is contained in:
proxy
2020-11-07 03:38:45 -05:00
committed by GitHub
parent 1c4a7d25c7
commit aab8acf2ea
3 changed files with 21 additions and 7 deletions

View File

@@ -0,0 +1,15 @@
- case: test_request_session
main: |
from django.contrib.auth import get_user
from django.contrib.sessions.middleware import SessionMiddleware
from django.http import HttpRequest
request = HttpRequest()
SessionMiddleware().process_request(request)
get_user(request)
- case: test_client_session
main: |
from django.contrib.auth import get_user
from django.test import Client
get_user(Client())