* 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