42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from src.core.appwrite_session import normalize_appwrite_session_cookie
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"project_id, raw, expected",
|
|
[
|
|
("proj123", None, None),
|
|
("proj123", "", None),
|
|
("proj123", " \t", None),
|
|
(None, "token", "token"),
|
|
("proj123", "token", "a_session_proj123=token"),
|
|
("proj123", "token; Path=/; HttpOnly", "a_session_proj123=token; Path=/; HttpOnly"),
|
|
(
|
|
"proj123",
|
|
"session=value",
|
|
"a_session_proj123=value",
|
|
),
|
|
(
|
|
"proj123",
|
|
"a_session_proj123=value; Path=/; HttpOnly",
|
|
"a_session_proj123=value; Path=/; HttpOnly",
|
|
),
|
|
(
|
|
"proj123",
|
|
"locale=pt-BR; a_session_proj123=value",
|
|
"locale=pt-BR; a_session_proj123=value",
|
|
),
|
|
],
|
|
)
|
|
def test_normalize_appwrite_session_cookie(project_id: str | None, raw: str | None, expected: str | None) -> None:
|
|
assert normalize_appwrite_session_cookie(project_id, raw) == expected
|
|
|
|
|
|
def test_normalize_preserves_additional_cookies() -> None:
|
|
raw = "token; Path=/; HttpOnly; locale=pt-BR"
|
|
normalized = normalize_appwrite_session_cookie("proj123", raw)
|
|
assert normalized == "a_session_proj123=token; Path=/; HttpOnly; locale=pt-BR"
|
|
|