Desenvolvimento

Pre-commit Hooks

O projeto usa pre-commit para garantir qualidade de código. Os hooks executam automaticamente antes de cada commit:

Hook

Descrição

flake8

Verificação estática PEP 8 (estilo Tryton: ignora E123, E124, E126, E128, E741, W503)

isort

Ordenação de imports (VERTICAL_GRID, prefixo trytond)

trailing-whitespace

Remove espaços em branco no final de linhas

end-of-file-fixer

Garante nova linha no final dos arquivos

check-xml-declaration

XML sem espaço antes de ?>

check-xml-indentation

XML indentado com 4 espaços, sem tabs

check-no-import-star

Proíbe from M import *

check-docstring-quotes

Docstrings devem usar aspas triplas duplas """

check-class-names

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

Testes

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 Docs

Construir a documentação Sphinx:

inv dev.docs

O resultado fica em backend/doc/_build/html/.