22 lines
794 B
Python
22 lines
794 B
Python
"""Startup validation errors must not print configuration credentials."""
|
|
|
|
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from app.config import Settings
|
|
|
|
|
|
def test_incomplete_max_configuration_does_not_expose_token():
|
|
with pytest.raises(ValidationError) as error:
|
|
Settings(_env_file=None, max_enabled=True, max_bot_token="SYNTHETIC_SECRET")
|
|
message = str(error.value)
|
|
assert "MAX_BOT_USERNAME" in message
|
|
assert "SYNTHETIC_SECRET" not in message and "input_value" not in message
|
|
|
|
|
|
def test_invalid_field_does_not_expose_accidentally_pasted_secret():
|
|
with pytest.raises(ValidationError) as error:
|
|
Settings(_env_file=None, max_enabled="SYNTHETIC_SECRET")
|
|
assert "max_enabled" in str(error.value)
|
|
assert "SYNTHETIC_SECRET" not in str(error.value)
|