This commit is contained in:
47
tests/test_prompt.py
Normal file
47
tests/test_prompt.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from lai_automation.models import FailureReport
|
||||
from lai_automation.prompt import build_task, redact
|
||||
|
||||
|
||||
def test_redact_removes_common_secrets_and_personal_markers() -> None:
|
||||
value = "password=hunter2 token: abc123 admin@example.com 10.2.3.4 Bearer secret.jwt"
|
||||
result = redact(value)
|
||||
assert "hunter2" not in result
|
||||
assert "abc123" not in result
|
||||
assert "admin@example.com" not in result
|
||||
assert "10.2.3.4" not in result
|
||||
assert "secret.jwt" not in result
|
||||
|
||||
|
||||
def test_task_contains_constraints_and_redacted_report() -> None:
|
||||
report = FailureReport(
|
||||
id=7,
|
||||
chat_message_id=91,
|
||||
source="user_feedback",
|
||||
category="incorrect_answer",
|
||||
user_feedback="password=secret-value",
|
||||
prompt="List locations for admin@example.com",
|
||||
response=None,
|
||||
sql_query="SELECT * FROM company",
|
||||
error_message=None,
|
||||
context={"model": "mistral", "database_type": "customer"},
|
||||
)
|
||||
task = build_task(report)
|
||||
assert "failure report #7" in task
|
||||
assert "secret-value" not in task
|
||||
assert "admin@example.com" not in task
|
||||
assert "Do not commit or push" in task
|
||||
|
||||
|
||||
def test_redact_removes_extended_credentials() -> None:
|
||||
private_key = "-----BEGIN PRIVATE KEY-----\nprivate-material\n-----END PRIVATE KEY-----"
|
||||
value = (
|
||||
"AKIAIOSFODNN7EXAMPLE "
|
||||
"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature "
|
||||
"mysql://admin:database-password@db.internal/lai "
|
||||
f"{private_key}"
|
||||
)
|
||||
result = redact(value)
|
||||
assert "AKIAIOSFODNN7EXAMPLE" not in result
|
||||
assert "eyJhbGci" not in result
|
||||
assert "database-password" not in result
|
||||
assert "private-material" not in result
|
||||
Reference in New Issue
Block a user