O projeto usa pre-commit para garantir qualidade de código. Os hooks executam automaticamente antes de cada commit:
Hook |
Descrição |
|---|---|
|
Verificação estática PEP 8 (estilo Tryton: ignora E123, E124, E126, E128, E741, W503) |
|
Ordenação de imports (VERTICAL_GRID, prefixo trytond) |
|
Remove espaços em branco no final de linhas |
|
Garante nova linha no final dos arquivos |
|
XML sem espaço antes de |
|
XML indentado com 4 espaços, sem tabs |
|
Proíbe |
|
Docstrings devem usar aspas triplas duplas |
|
Nomes de classes em CamelCase |
Instalar pre-commit:
pip install pre-commit
pre-commit install
Após instalar, os hooks executam automaticamente a cada git commit. Para executar manualmente:
pre-commit run --all-files
Os testes executam dentro do contêiner Docker via Invoke.
Verificação estática e testes unitários de um módulo:
inv tests --name speco
Verificação estática e testes unitários de todos os módulos:
inv tests
Testes BDD (behave) de um módulo:
inv bdd.run --name speco
Testes BDD de todos os módulos:
inv bdd.all
Construir a documentação Sphinx:
inv dev.docs
O resultado fica em backend/doc/_build/html/.