Skip to content

Commit 81ceda8

Browse files
authored
Merge pull request #451 from dunossauro/engine_dispose
Adicionando engine.dispose
2 parents 51d3f08 + 7796295 commit 81ceda8

File tree

7 files changed

+9
-0
lines changed

7 files changed

+9
-0
lines changed

aulas/04.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ def session():
262262
yield session#(4)!
263263

264264
table_registry.metadata.drop_all(engine)#(5)!
265+
engine.dispose()#(6)!
265266
```
266267

267268
Aqui, estamos utilizando o SQLite como o banco de dados em memória para os testes. Essa é uma prática comum em testes unitários, pois a utilização de um banco de dados em memória é mais rápida do que um banco de dados persistido em disco. Com o SQLite em memória, podemos criar e destruir bancos de dados facilmente, o que é útil para isolar os testes e garantir que os dados de um teste não afetem outros testes. Além disso, não precisamos nos preocupar com a limpeza dos dados após a execução dos testes, já que o banco de dados em memória é descartado quando o programa é encerrado.
@@ -278,6 +279,8 @@ O que cada linha da fixture faz?
278279

279280
5. `table_registry.metadata.drop_all(engine)`: após cada teste que usa a fixture `session`, todas as tabelas do banco de dados de teste são eliminadas, garantindo que cada teste seja executado contra um banco de dados limpo.
280281

282+
6. `engine.dispose()`: fecha todas as conexões abertas associadas ao `engine`, liberando os recursos do sistema. Isso garante que o mecanismo de banco de dados seja completamente encerrado após o teste, evitando vazamentos de conexão e outros problemas relacionados à persistência de estado entre testes.
283+
281284
Resumindo, essa fixture está configurando e limpando um banco de dados de teste para cada teste que o solicita, assegurando que cada teste seja isolado e tenha seu próprio ambiente limpo para trabalhar. Isso é uma boa prática em testes de unidade, já que queremos que cada teste seja independente e não afete os demais.
282285

283286
### Criando um Teste para a Nossa Tabela

aulas/05.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ def session():
274274
yield session
275275

276276
table_registry.metadata.drop_all(engine)
277+
engine.dispose()
277278
```
278279

279280
Depois de realizar essas mudanças, podemos executar nossos testes e verificar se estão passando. Porém, embora o teste `test_create_user` tenha passado, precisamos agora ajustar os outros endpoints para que eles também utilizem a nossa sessão de banco de dados.

changelogs/+64dba228.correcoes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Adicionando `engine.dispose` para garatir que a DBAPI não levante warnings relativos ao não fechamento do fixture do banco de dados

codigo_das_aulas/04/tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def session():
2424
yield session
2525

2626
table_registry.metadata.drop_all(engine)
27+
engine.dispose()
2728

2829

2930
@contextmanager

codigo_das_aulas/05/tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def session():
3737
yield session
3838

3939
table_registry.metadata.drop_all(engine)
40+
engine.dispose()
4041

4142

4243
@contextmanager

codigo_das_aulas/06/tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def session():
3838
yield session
3939

4040
table_registry.metadata.drop_all(engine)
41+
engine.dispose()
4142

4243

4344
@contextmanager

codigo_das_aulas/07/tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def session():
3838
yield session
3939

4040
table_registry.metadata.drop_all(engine)
41+
engine.dispose()
4142

4243

4344
@contextmanager

0 commit comments

Comments
 (0)