digitalinnovationone / workout_api

58 stars 487 forks source link

DESAFIO - Implementando TDD com FastAPI, Pytest e MongoDB #12

Open Amandaraamos opened 3 months ago

Amandaraamos commented 3 months ago

DESAFIO

Instalação das Dependências

pip install fastapi uvicorn pymongo motor pytest

Configuração do MongoDB

from pydantic import BaseModel
from typing import Optional

class Atleta(BaseModel):
    nome: str
    cpf: str
    centro_treinamento: Optional[str] = None
    categoria: Optional[str] = None

Configuração da Aplicação FastAPI

from fastapi import FastAPI
from app.routes import router

app = FastAPI()

app.include_router(router)

Configuração do Pytest


from fastapi.testclient import TestClient
from app.main import app

client = TestClient(app)

def test_create_atleta(): response = client.post("/atletas", json={ "nome": "João Silva", "cpf": "12345678901", "centro_treinamento": "Centro A", "categoria": "Categoria 1" }) assert response.status_code == 200 assert response.json() == { "nome": "João Silva", "cpf": "12345678901", "centro_treinamento": "Centro A", "categoria": "Categoria 1" }

def test_get_atletas(): response = client.get("/atletas") assert response.status_code == 200 assert len(response.json()) > 0



**Projeto FastAPI com TDD

Neste projeto, você aprenderá na prática como implementar o TDD em uma aplicação utilizando FastAPI juntamente com Pytest. Criaremos juntos uma API utilizando o banco de dados MongoDB e realizando testes unitários e de integração. Além disso, você pode conhecer boas práticas de como documentar um projeto.**