Além dos testes unitários com mocks, este projeto possui uma suíte de testes de integração reais que validam o
contrato entre o Integrador AVA e o plugin local_suap do Moodle.
Esses testes utilizam contêineres Docker para subir um ambiente completo, incluindo um Moodle real com dados sintéticos.
docker-compose.integration.yml: Orquestra o Integrador, o Moodle e seus bancos de dados.tests_integration/: Contém os arquivos de teste (test_*.py) e configurações (conftest.py).tests_integration/scripts/seed_moodle.php: Script PHP que popula o Moodle com dados de teste
(cursos, usuários, notas) usando a API interna do Moodle.O comando abaixo sobe todo o ambiente, executa os testes e encerra os contêineres, retornando o código de saída correto:
docker compose -f docker-compose.integration.yml up --build test-integration --exit-code-from test-integration
Se você quiser manter o ambiente subido para debugar:
# Sobe a infra (Moodle + Bancos)
docker compose -f docker-compose.integration.yml up -d moodle db-integrador
# Roda os testes a partir do seu host (requer .venv ativa)
pytest tests_integration --ds=settings -v -s
Atualmente, os testes cobrem:
sync_up_enrolments:
sync_down_grades:
Estes testes são executados automaticamente:
integration).pre-commit instalado, eles rodam no estágio pre-push.O Moodle pode demorar alguns minutos para inicializar na primeira vez (instalação do banco).
O docker-compose está configurado com healthchecks para aguardar, mas se o timeout do
pytest (em conftest.py) for atingido, você pode aumentá-lo ou verificar os logs:
docker compose -f docker-compose.integration.yml logs moodle