Para iniciar o backend pela primeira vez é necessário buildar o docker-compose e realizar os passos iniciais de migrate e createsuperuser do Django.
# Utilize o docker-compose para iniciar
$ docker-compose up --build
# Migre as models
$ make migrate
# Por fim, basta criar o superuser do django
$ make superuser
Após a criação de uma nova model é necessário criar as migrações, o django fornece dois comandos para isso.
# Primeiro crie as migrações
$ make migrations
# Realize a migração
$ make migrate
Com o objetivo de criar uma aplicação estável e correta são necessários testes, para isso será usado o pytest como utilitário para execução da suite de testes.
- Obs.: O comando ja executa com a flag -s do pytest, permitindo a utilização do ipdb como breakpoint para debug.
# Executando todos os testes da aplicação
$ make test
# Selecionando um teste dentro de um módulo ou
# rodando a suite de testes de um módulo
$ make test FILE=seu/arquivo/aqui.py
# Selecionando um teste exclusivo
$ make test TEST=nomeDoSeuTesteOuClasse
# Forma mais eficiente do exemplo anterior (selecionando o arquivo daquele teste)
$ make test FILE=seu/arquivo/aqui.py TEST=nomeDoSeuTesteOuClasse
Para a criação de testes facilitada, estão disponíveis utilitário como:
- Freezegun: Congela o dia e a hora do código.
- Parameterized: Permite a passagem de parâmetros na chamada de um teste, podendo o mesmo ser reutilizado para diversas entradas.
- Model-bakery: Permite a criação de objetos padrões para os testes, tornado os códigos mais enxutos e mais compreensíveis.
- Mock: Para mockar funções e fluxos dentro da aplicação