| 1 | from helpers import secrets |
| 2 | |
| 3 | |
| 4 | class _Context: |
| 5 | def get_data(self, key: str): |
| 6 | return None |
| 7 | |
| 8 | |
| 9 | def test_agent_secret_manager_masks_runtime_credentials_only(monkeypatch): |
| 10 | monkeypatch.setattr(secrets.SecretsManager, "_instances", {}) |
| 11 | monkeypatch.setattr(secrets.dotenv, "get_dotenv_file_path", lambda: "usr/.env") |
| 12 | |
| 13 | contents = { |
| 14 | "usr/secrets.env": "PROJECT_SECRET=project-value\n", |
| 15 | "usr/.env": ( |
| 16 | "API_KEY_OPENAI=llm-secret-value\n" |
| 17 | "ANONYMIZED_TELEMETRY=false\n" |
| 18 | "DEFAULT_USER_TIMEZONE=Europe/Rome\n" |
| 19 | ), |
| 20 | } |
| 21 | monkeypatch.setattr(secrets.files, "read_file", contents.__getitem__) |
| 22 | |
| 23 | manager = secrets.get_secrets_manager(_Context()) |
| 24 | |
| 25 | assert manager.mask_values( |
| 26 | "project-value; key=llm-secret-value; avoid falsely accusing a utility" |
| 27 | ) == ( |
| 28 | "§§secret(PROJECT_SECRET); key=§§secret(API_KEY_OPENAI); " |
| 29 | "avoid falsely accusing a utility" |
| 30 | ) |
| 31 | assert "ANONYMIZED_TELEMETRY" not in manager.get_secrets_for_prompt() |
| 32 | |
| 33 | stream_filter = manager.create_streaming_filter() |
| 34 | assert stream_filter.process_chunk("avoid falsely accusing a utility") == ( |
| 35 | "avoid falsely accusing a utility" |
| 36 | ) |
| 37 | assert stream_filter.finalize() == "" |