38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
from fastapi import HTTPException
|
|
|
|
from porchlight.dependencies import get_session_user, require_session_user
|
|
|
|
|
|
def test_get_session_user_none_when_missing() -> None:
|
|
request = MagicMock()
|
|
request.session = {}
|
|
assert get_session_user(request) is None
|
|
|
|
|
|
def test_get_session_user_returns_tuple() -> None:
|
|
request = MagicMock()
|
|
request.session = {"userid": "u1", "username": "alice"}
|
|
assert get_session_user(request) == ("u1", "alice")
|
|
|
|
|
|
def test_get_session_user_none_when_partial() -> None:
|
|
request = MagicMock()
|
|
request.session = {"userid": "u1"} # missing username
|
|
assert get_session_user(request) is None
|
|
|
|
|
|
def test_require_session_user_raises_when_missing() -> None:
|
|
request = MagicMock()
|
|
request.session = {}
|
|
with pytest.raises(HTTPException) as exc_info:
|
|
require_session_user(request)
|
|
assert exc_info.value.status_code == 401
|
|
|
|
|
|
def test_require_session_user_returns_tuple() -> None:
|
|
request = MagicMock()
|
|
request.session = {"userid": "u1", "username": "alice"}
|
|
assert require_session_user(request) == ("u1", "alice")
|