dunossauro / fastapi-do-zero

Curso básico de FastAPI
https://fastapidozero.dunossauro.com/
644 stars 66 forks source link

[Aula 09] Erro no código de exemplo do conftest.py com a sessão do Postgres #84

Closed brunodavi closed 8 months ago

brunodavi commented 8 months ago

Tópico onde o erro foi encontrado: Executando os testes no PostgreSQL

Local dos erros: 09_errors

O meu código funcionou apenas quando deixei assim:

import factory
import pytest
from fastapi.testclient import TestClient
from sqlalchemy import StaticPool, create_engine
from sqlalchemy.orm import sessionmaker

from fast_todo.app import app
from fast_todo.database import get_session
from fast_todo.models import Base, User
from fast_todo.settings import Settings
from fast_todo.security import get_password_hash

# Resto do código...

@pytest.fixture
def session():
    engine = create_engine(
        Settings().DATABASE_URL,
        poolclass=StaticPool,
    )

    Session = sessionmaker(bind=engine)
    Base.metadata.create_all(engine)

    yield Session()

    Base.metadata.drop_all(engine)

# Resto do código...

Pois quando executava sem o StaticPool depois que ele passava do teste de auth.py o do app.py ficava parado sem executar, então supus que poderia ser por causa de não ter as configurações de execução que você explicou no começo da aula que são executadas de forma paralela

dunossauro commented 8 months ago

@brunodavi, obrigado pelo report, meu querido :heart:

Acabei de corrigir a parte do texto. Em relação ao código fonte, acabei de testar aqui e está funcional. Não é recomendado usar o StaticPool quando usamos postgres. Algo deve ter acontecido no desenvolvimento da sua aplicação em específico. Provavelmente algum erro direcionado pelo pŕoprio curso. Seu repositório está aberto?

Para efeito de comparação, o código usado para efetuar o comando docker-compose run --entrypoint="bash" fastzero_app está aqui: https://github.com/dunossauro/fastapi-do-zero/tree/main/codigo_das_aulas/09

Vou fechar a issue por hora, qualquer coisa podemos reabrir!

dunossauro commented 8 months ago

A correção já está no deploy: https://fastapidozero.dunossauro.com/

brunodavi commented 7 months ago

Obrigado, vou verificar