Exercícios da aula 02
Exercício 01
- Crie um novo endpoint em
fast_zero/app.py
que retorne "olá mundo" usando HTML e escreva seu teste emtests/test_app.py
.
Dica: para capturar a resposta do HTML do cliente de testes, você pode usar
response.text
Solução
Para criação do endpoint retornando HTML devemos alterar a classe de resposta padrão do FastAPI para HTMLResponse
:
Implementação do endpoint
from fastapi.responses import HTMLResponse
# ...
@app.get('/exercicio-html', response_class=HTMLResponse)
def exercicio_aula_02():
return """
<html>
<head>
<title>Nosso olá mundo!</title>
</head>
<body>
<h1> Olá Mundo </h1>
</body>
</html>"""
O teste que faz a validação do valor retornado pelo endpoint não precisa ser muito robusto. A ideia principal do exercício é somente validar se estamos retornando o "Olá Mundo" em formato de HTML:
Implementação do teste
def test_exercicio_ola_mundo_em_html():
client = TestClient(app)
response = client.get('/exercicio-html')
assert response.status_code == HTTPStatus.OK
assert '<h1> Olá Mundo </h1>' in response.text
O response.text
é um método do cliente de testes do FastAPI que converte os bytes de resposta em string.