import base64 from fastapi import Depends, FastAPI from fastapi.testclient import TestClient from app.auth import exigir_login app_teste = FastAPI() @app_teste.get("/protegido") def rota_protegida(usuario: str = Depends(exigir_login)): return {"usuario": usuario} client = TestClient(app_teste) def _basic(usuario: str, senha: str) -> dict: token = base64.b64encode(f"{usuario}:{senha}".encode()).decode() return {"Authorization": f"Basic {token}"} def test_sem_credenciais_retorna_401(): resposta = client.get("/protegido") assert resposta.status_code == 401 def test_credenciais_erradas_retorna_401(): resposta = client.get("/protegido", headers=_basic("admin", "senha_errada")) assert resposta.status_code == 401 def test_credenciais_corretas_retorna_200(): # ADMIN_USER/ADMIN_PASSWORD vêm de tests/conftest.py ("admin"/"teste123") resposta = client.get("/protegido", headers=_basic("admin", "teste123")) assert resposta.status_code == 200 assert resposta.json() == {"usuario": "admin"}