fix: achados da revisao final (remove TAMANHO_PAGINA morto, httponly no cookie de paginacao, limpa testes)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
9ce6bcdcad
commit
9a7d12f941
@@ -32,8 +32,6 @@ from ..normalize import (
|
|||||||
router = APIRouter(prefix="/clientes")
|
router = APIRouter(prefix="/clientes")
|
||||||
templates = Jinja2Templates(directory="app/templates")
|
templates = Jinja2Templates(directory="app/templates")
|
||||||
|
|
||||||
TAMANHO_PAGINA = 100
|
|
||||||
|
|
||||||
OPCOES_POR_PAGINA = [5, 10, 15, 20, 30, 40, 50, 100]
|
OPCOES_POR_PAGINA = [5, 10, 15, 20, 30, 40, 50, 100]
|
||||||
POR_PAGINA_PADRAO = 15
|
POR_PAGINA_PADRAO = 15
|
||||||
POR_PAGINA_COOKIE = "clientes_por_pagina"
|
POR_PAGINA_COOKIE = "clientes_por_pagina"
|
||||||
@@ -208,7 +206,7 @@ def listar(
|
|||||||
# reescrevendo o mesmo Set-Cookie em toda requisição à toa.
|
# reescrevendo o mesmo Set-Cookie em toda requisição à toa.
|
||||||
resposta.set_cookie(
|
resposta.set_cookie(
|
||||||
POR_PAGINA_COOKIE, str(por_pagina), samesite="lax",
|
POR_PAGINA_COOKIE, str(por_pagina), samesite="lax",
|
||||||
secure=request.url.scheme == "https",
|
secure=request.url.scheme == "https", httponly=True,
|
||||||
)
|
)
|
||||||
return resposta
|
return resposta
|
||||||
|
|
||||||
|
|||||||
@@ -125,3 +125,8 @@ def test_post_logout_apaga_cookie_de_preferencia_de_paginacao():
|
|||||||
assert resposta.status_code == 303
|
assert resposta.status_code == 303
|
||||||
set_cookie = resposta.headers.get("set-cookie", "")
|
set_cookie = resposta.headers.get("set-cookie", "")
|
||||||
assert POR_PAGINA_COOKIE in set_cookie
|
assert POR_PAGINA_COOKIE in set_cookie
|
||||||
|
# confirma que o cookie foi de fato apagado (Max-Age=0), não só regravado
|
||||||
|
trecho_cookie = next(
|
||||||
|
parte for parte in resposta.headers.get_list("set-cookie") if POR_PAGINA_COOKIE in parte
|
||||||
|
)
|
||||||
|
assert "Max-Age=0" in trecho_cookie
|
||||||
|
|||||||
@@ -36,13 +36,10 @@ def _sem_log_real(monkeypatch):
|
|||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
def _limpar_cookies():
|
def _limpar_cookies():
|
||||||
"""Limpa cookies entre testes para evitar compartilhamento de estado."""
|
"""Limpa cookies entre testes para evitar compartilhamento de estado."""
|
||||||
# Salva os cookies iniciais (csrf_token deve persistir)
|
|
||||||
csrf_token = client.cookies.get("csrf_token")
|
|
||||||
client.cookies.clear()
|
client.cookies.clear()
|
||||||
client.cookies.set("csrf_token", CSRF_TESTE)
|
client.cookies.set("csrf_token", CSRF_TESTE)
|
||||||
yield
|
yield
|
||||||
# Limpa novamente após o teste
|
# Limpa novamente após o teste
|
||||||
csrf_token = client.cookies.get("csrf_token")
|
|
||||||
client.cookies.clear()
|
client.cookies.clear()
|
||||||
client.cookies.set("csrf_token", CSRF_TESTE)
|
client.cookies.set("csrf_token", CSRF_TESTE)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user