Skip to content

Commit

Permalink
Atualizando slides
Browse files Browse the repository at this point in the history
related #254
  • Loading branch information
dunossauro committed Oct 5, 2024
1 parent 2b6a6e4 commit 22e0ef0
Show file tree
Hide file tree
Showing 36 changed files with 506 additions and 513 deletions.
4 changes: 2 additions & 2 deletions slides/brutos/aula_01.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ isso vai nos gerar essa estrutura:
Para que a versão que instalamos com pyenv seja usada em nosso projeto criado com poetry, devemos dizer ao pyenv qual versão do python será usada nesse diretório:

```shell title="$ Execução no terminal!"
pyenv local 3.12.3 # Essa era a maior versão do 3.12 quando escrevi
pyenv local 3.12.6 # Essa era a maior versão do 3.12 quando escrevi
```

Em conjunto com essa instrução, devemos dizer ao poetry que usaremos essa versão em nosso projeto. Para isso vamos alterar o arquivo de configuração do projeto o `pyproject.toml` na raiz do projeto:
Expand All @@ -168,7 +168,7 @@ poetry install
Para instalar o fastapi

```bash
poetry add fastapi
poetry add fastapi[standard]
```

---
Expand Down
6 changes: 0 additions & 6 deletions slides/brutos/aula_03.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,6 @@ class UserSchema(BaseModel):
password: str
```

Para usar essa validação, podemos instalar uma extensão do pydantic:

```bash
poetry add "pydantic[email]"
```

---

# Dito tudo isso
Expand Down
6 changes: 4 additions & 2 deletions slides/brutos/aula_04.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ theme: rose-pine
- Configurando e criando o banco de dados
- Criando e localizando tabelas utilizando SQLAlchemy
- Testando a criação de tabelas
- Eventos do SQLAlchemy
- Gerenciando migrações do banco de dados com Alembic

---
Expand Down Expand Up @@ -366,8 +367,9 @@ alembic upgrade head

## Exercícios + Quiz

2. Criar uma nova migração autogerada com alembic
3. Aplicar essa migração ao banco de dados
2. Altere o evento de testes (`mock_db_time`) para ser contemplado no mock o campo `updated_at` na validação do teste.
3. Criar uma nova migração autogerada com alembic
4. Aplicar essa migração ao banco de dados

> Obviamente, não esqueça de responder ao [quiz](https://fastapidozero.dunossauro.com/quizes/aula_04/) da aula
Expand Down
4 changes: 2 additions & 2 deletions slides/brutos/aula_05.md
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ def put_ou_delete():
def update_user(
user_id: int, user: UserSchema, session: Session = Depends(get_session)
):
# Validação
# Validação

db_user.username = user.username
db_user.password = user.password
Expand All @@ -502,7 +502,7 @@ def update_user(
```python
@app.delete('/users/{user_id}', response_model=Message)
def delete_user(user_id: int, session: Session = Depends(get_session)):
# Validação
# Validação
session.delete(db_user)
session.commit()

Expand Down
14 changes: 3 additions & 11 deletions slides/brutos/aula_06.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,16 +190,6 @@ OAuth2 É um protocolo aberto para autorização. O FastAPI disponibiliza alguns
---

## O uso de formulários

Quando usamos formulários no FastAPI, como `OAuth2PasswordRequestForm`, precisamos instalar uma biblioteca para multipart:

```bash
poetry add python-multipart
```

---

# Validando os dados!

```python
Expand Down Expand Up @@ -713,7 +703,9 @@ def test_jwt_invalid_token(client):

1. Faça um teste para cobrir o cenário que levanta exception `credentials_exception` na autenticação caso o `User` não seja encontrado. Ao olhar a cobertura de `security.py` você vai notar que esse contexto não está coberto.

2. Reveja os testes criados até a aula 5 e veja se eles ainda fazem sentido (testes envolvendo 400)
2. Faça um teste para cobrir o cenário que levanta exception credentials_exception na autenticação caso o email seja enviado, mas não exista um User correspondente cadastrado na base de dados. Ao olhar a cobertura de security.py você vai notar que esse contexto não está coberto.

3. Reveja os testes criados até a aula 5 e veja se eles ainda fazem sentido (testes envolvendo 400)

---

Expand Down
6 changes: 6 additions & 0 deletions slides/brutos/aula_08.md
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,12 @@ def test_token_expired_dont_refresh(client, user):

---

# Exercício

O endpoint de PUTusa dois users criados na base de dados, porém, até o momento ele cria um novo user no teste via request na API por falta de uma fixture como other_user. Atualize o teste para usar essa nova fixture.

---

# Quiz

Não esqueça de responder o [quiz](https://fastapidozero.dunossauro.com/quizes/aula_08/) dessa aula!
Expand Down
9 changes: 5 additions & 4 deletions slides/brutos/aula_09.md
Original file line number Diff line number Diff line change
Expand Up @@ -598,12 +598,13 @@ def test_patch_todo_error(client, token):
# Exercícios

1. Adicione os campos `created_at` e `updated_at` na tabela `Todo`
- Eles devem ser `init=False`
- Deve usar `func.now()` para criação
- O campo `updated_at` deve ter `onupdate`
- Eles devem ser `init=False`
- Deve usar `func.now()` para criação
- O campo `updated_at` deve ter `onupdate`

2. Criar uma migração para que os novos campos sejam versionados e também aplicar a migração
3. Adicionar os campos `created_at` e `updated_at` no schema de saída dos endpoints. Para que esse valores sejam retornados na API.
3. Adicionar os campos `created_at` e `updated_at` no schema de saída dos endpoints. Para que esse valores sejam retornados na API. Essa alteração deve ser refletida nos testes também!
4. Crie um teste para o endpoint de busca (GET) que valide todos os campos contidos no `Todo` de resposta. Até o momento, todas as validações foram feitas pelo tamanho do resultado de todos.

---

Expand Down
2 changes: 0 additions & 2 deletions slides/brutos/aula_13.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ theme: rose-pine

> https://fastapidozero.dunossauro.com/14/
> PS: Entrega até 30 de agosto
---

## Próximos passos com o framework
Expand Down
Loading

0 comments on commit 22e0ef0

Please sign in to comment.