gmao/tests/integration/test_audit_log.py

22 lines
812 B
Python
Raw Normal View History

"""Le journal d'audit doit être utile sans enregistrer de secrets."""
from app_new.core.models.audit import AuditLog
def test_login_attempt_is_audited_and_password_is_redacted(client, app):
response = client.post('/auth/login', data={
'username': 'personne-inconnue',
'password': 'secret-qui-ne-doit-pas-etre-stocke',
})
assert response.status_code == 200
with app.app_context():
entry = AuditLog.query.filter_by(endpoint='auth.login').order_by(AuditLog.id.desc()).first()
assert entry is not None
assert entry.action == 'POST'
assert 'secret-qui-ne-doit-pas-etre-stocke' not in entry.payload
assert '[MASQUÉ]' in entry.payload
def test_audit_page_is_admin_only(client, app):
assert client.get('/admin/audit').status_code == 302