Adiciona testes do conector com fixtures offline

Cobre o caminho completo sem depender da VPS estar no ar: cifra com uma
chave de teste descartavel, troca a chave do app por monkeypatch e exercita
a rota.

8 casos: recusa sem token e com token errado; caminho feliz; envelope
adulterado (o GCM tem que estourar, nao passar); cifrado com outra chave;
payload fora do contrato (422, nao 200 nem 500); e dois travando o contrato
com a API da VPS — se o PayloadCompras dos dois lados divergir, quebra aqui
em vez de em producao.

Fixtures em tests/fixtures/: par de chaves so pra teste, o payload real do
Holmes e o payload ja tratado. O .gitignore abre excecao estreita pra
tests/fixtures/*.pem — chave real continua barrada.

Tambem:
- 422 passa a usar HTTP_422_UNPROCESSABLE_CONTENT (o _ENTITY deprecou)
- app/services/holmes.py removido: o conector nao fala com o Holmes
- app/utils/cesar.py entra como veio

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ricardo 2026-08-18 06:13:13 -03:00
parent f902ccbecb
commit 7a9b0f8aa5
9 changed files with 283 additions and 705 deletions

4
.gitignore vendored
View file

@ -12,3 +12,7 @@ configs.json.*
*.bak-*
*.pem
*.key
# Excecao: chaves descartaveis de teste. Geradas so pro pytest, nunca
# usadas em runtime. As reais continuam barradas pela regra acima.
!tests/fixtures/*.pem