test_sanitizer.py 1000 B

123456789101112131415161718192021222324252627
  1. from app.sanitizer import sanitize
  2. def test_sensitive_mapping_values_are_redacted():
  3. payload = sanitize({
  4. "api_key": "sk-secret",
  5. "nested": {"Authorization": "Bearer token"},
  6. "data_source_url": "postgresql://user:pass@db/name",
  7. "safe": "ok",
  8. })
  9. assert payload == {
  10. "api_key": "***",
  11. "nested": {"Authorization": "***"},
  12. "data_source_url": "***",
  13. "safe": "ok",
  14. }
  15. def test_connection_strings_are_redacted_inside_text():
  16. assert sanitize("connect postgresql://user:pass@db/name") == "connect postgresql://user:***@db/name"
  17. def test_json_strings_and_authorization_schemes_are_fully_redacted():
  18. assert sanitize('{"api_key":"SECRET","safe":"ok"}') == '{"api_key":"***","safe":"ok"}'
  19. assert sanitize("Authorization: Bearer SECRET") == "Authorization: ***"
  20. assert sanitize("Authorization=Basic dXNlcjpwYXNz") == "Authorization=***"
  21. assert sanitize('{"access_token":"TOKEN"}') == '{"access_token":"***"}'