21 lines
812 B
Python
21 lines
812 B
Python
"""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
|