fix: reorder imports and use ty-compatible type suppression
This commit is contained in:
parent
f648422227
commit
1054feb534
12 changed files with 14 additions and 14 deletions
|
|
@ -110,16 +110,16 @@ def create_app(settings: Settings | None = None) -> FastAPI:
|
||||||
# Session middleware
|
# Session middleware
|
||||||
session_secret = settings.session_secret or secrets.token_hex(32)
|
session_secret = settings.session_secret or secrets.token_hex(32)
|
||||||
app.add_middleware(
|
app.add_middleware(
|
||||||
CSRFMiddleware,
|
CSRFMiddleware, # ty: ignore[invalid-argument-type]
|
||||||
exempt_paths={"/token", "/userinfo"},
|
exempt_paths={"/token", "/userinfo"},
|
||||||
check_origin=settings.issuer,
|
check_origin=settings.issuer,
|
||||||
)
|
)
|
||||||
app.add_middleware(
|
app.add_middleware(
|
||||||
SessionMiddleware,
|
SessionMiddleware, # ty: ignore[invalid-argument-type]
|
||||||
secret_key=session_secret,
|
secret_key=session_secret,
|
||||||
same_site="lax",
|
same_site="lax",
|
||||||
https_only=settings.session_https_only,
|
https_only=settings.session_https_only,
|
||||||
) # type: ignore[arg-type]
|
)
|
||||||
|
|
||||||
# Templates
|
# Templates
|
||||||
templates = Jinja2Templates(directory=str(PACKAGE_DIR / "templates"))
|
templates = Jinja2Templates(directory=str(PACKAGE_DIR / "templates"))
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ from datetime import UTC, datetime
|
||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User, WebAuthnCredential
|
from porchlight.models import PasswordCredential, User, WebAuthnCredential
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
async def _create_user_and_login(client: AsyncClient) -> str:
|
async def _create_user_and_login(client: AsyncClient) -> str:
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ from datetime import UTC, datetime
|
||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User
|
from porchlight.models import PasswordCredential, User
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
async def _login(client: AsyncClient, username: str = "alice", password: str = "testpass") -> None:
|
async def _login(client: AsyncClient, username: str = "alice", password: str = "testpass") -> None:
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ from datetime import UTC, datetime
|
||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User, WebAuthnCredential
|
from porchlight.models import PasswordCredential, User, WebAuthnCredential
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
async def _create_user_and_login(client: AsyncClient) -> str:
|
async def _create_user_and_login(client: AsyncClient) -> str:
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,9 @@ from fido2.webauthn import (
|
||||||
)
|
)
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User, WebAuthnCredential
|
from porchlight.models import PasswordCredential, User, WebAuthnCredential
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
RP_ID = "localhost"
|
RP_ID = "localhost"
|
||||||
ORIGIN = "http://localhost:8000"
|
ORIGIN = "http://localhost:8000"
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ from datetime import UTC, datetime
|
||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User
|
from porchlight.models import PasswordCredential, User
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
async def test_password_login_unknown_user_returns_error_fragment(client: AsyncClient) -> None:
|
async def test_password_login_unknown_user_returns_error_fragment(client: AsyncClient) -> None:
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ from fido2.cose import ES256
|
||||||
from fido2.webauthn import Aaguid, AttestedCredentialData
|
from fido2.webauthn import Aaguid, AttestedCredentialData
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.models import User, WebAuthnCredential
|
from porchlight.models import User, WebAuthnCredential
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
RP_ID = "localhost"
|
RP_ID = "localhost"
|
||||||
ORIGIN = "http://localhost:8000"
|
ORIGIN = "http://localhost:8000"
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ from urllib.parse import parse_qs, urlparse
|
||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User
|
from porchlight.models import PasswordCredential, User
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
async def test_authorization_shows_consent_for_new_client(client: AsyncClient) -> None:
|
async def test_authorization_shows_consent_for_new_client(client: AsyncClient) -> None:
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ from cryptojwt.jwk.jwk import key_from_jwk_dict
|
||||||
from cryptojwt.jws.jws import JWS
|
from cryptojwt.jws.jws import JWS
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User
|
from porchlight.models import PasswordCredential, User
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
async def test_full_authorization_code_flow(client: AsyncClient) -> None:
|
async def test_full_authorization_code_flow(client: AsyncClient) -> None:
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ from datetime import UTC, datetime
|
||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User
|
from porchlight.models import PasswordCredential, User
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
def _register_test_client(client: AsyncClient) -> None:
|
def _register_test_client(client: AsyncClient) -> None:
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ from urllib.parse import parse_qs, urlparse
|
||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User
|
from porchlight.models import PasswordCredential, User
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
def _register_test_client(client: AsyncClient) -> str:
|
def _register_test_client(client: AsyncClient) -> str:
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ from urllib.parse import parse_qs, urlparse
|
||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from tests.conftest import get_csrf_token
|
|
||||||
from porchlight.authn.password import PasswordService
|
from porchlight.authn.password import PasswordService
|
||||||
from porchlight.models import PasswordCredential, User
|
from porchlight.models import PasswordCredential, User
|
||||||
|
from tests.conftest import get_csrf_token
|
||||||
|
|
||||||
|
|
||||||
def _register_test_client(client: AsyncClient) -> str:
|
def _register_test_client(client: AsyncClient) -> str:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue