Skip to content

Commit

Permalink
Correções e simplificações do texto na aula 05
Browse files Browse the repository at this point in the history
  • Loading branch information
dunossauro committed Oct 5, 2024
1 parent fb4bead commit 01e96ca
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions aulas/05.md
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ Porém, é claro, queremos também testar o caso em que existem usuários no ban

### Criando uma fixture para User

Para criar essa fixture, aproveitaremos a nossa fixture de sessão do SQLAlchemy, e criar um novo usuário dentro dela:
Para criar essa fixture, aproveitaremos a nossa fixture de sessão do SQLAlchemy, e criaremos um novo usuário a partir dela:

```python title="tests/conftest.py"
from fast_zero.models import User, table_registry
Expand Down Expand Up @@ -401,9 +401,9 @@ No entanto, mesmo que nosso código pareça correto, podemos encontrar um proble

A integração direta do ORM com o nosso esquema Pydantic não é imediata e exige algumas modificações. O Pydantic, por padrão, não sabe como lidar com os modelos do SQLAlchemy, o que nos leva ao erro observado nos testes.

A solução para esse problema passa por fazer uma alteração no esquema `UserPublic` que utilizamos, para que ele possa reconhecer e trabalhar com os modelos do SQLAlchemy. Isso permite que os objetos do SQLAlchemy sejam convertidos corretamente para os esquemas Pydantic.
A solução para esse problema é fazer uma alteração no esquema `UserPublic` que utilizamos, para que ele possa reconhecer e trabalhar com os modelos do SQLAlchemy. Isso permite a conversão direta de objetos do SQLAlchemy em esquemas Pydantic.

Para resolver o problema de conversão entre SQLAlchemy e Pydantic, precisamos atualizar o nosso esquema `UserPublic` para que ele possa reconhecer os modelos do SQLAlchemy. Para isso, adicionaremos a linha `model_config = ConfigDict(from_attributes=True)` ao nosso esquema:
Para isso, adicionaremos a linha `model_config = ConfigDict(from_attributes=True)` ao nosso esquema:

```py title="fast_zero/schemas.py" hl_lines="9"
from pydantic import BaseModel, ConfigDict, EmailStr
Expand All @@ -417,7 +417,7 @@ class UserPublic(BaseModel):
model_config = ConfigDict(from_attributes=True)
```

Com essa mudança, nosso esquema Pydantic agora pode ser convertido a partir de um modelo SQLAlchemy. Agora podemos executar nosso teste novamente e verificar se ele está passando.
Dessa forma a conversão entre modelos e schemas pode acontecer. Vamos executar os testes para validar:

```shell title="$ Execução no terminal!"
task test
Expand Down

0 comments on commit 01e96ca

Please sign in to comment.