From cb7c3a65c6e480fc26e97617fca5ec9b76fd0979 Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 8 Nov 2026 06:01:49 +0000 Subject: [PATCH] test(observability): match the full card number instead of a 4111 substring that timestamps can contain (#50612) Co-authored-by: mateo <277851410+mateo-berri@users.noreply.github.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../observability/test_presidio_masking_endpoints.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/integration/observability/test_presidio_masking_endpoints.py b/tests/integration/observability/test_presidio_masking_endpoints.py index 33a436be8d5..ee1775eeae0 100644 --- a/tests/integration/observability/test_presidio_masking_endpoints.py +++ b/tests/integration/observability/test_presidio_masking_endpoints.py @@ -16,6 +16,7 @@ from integration._support.wire import Reply, Request, Wire, wire_server from pydantic import BaseModel, ConfigDict, JsonValue, TypeAdapter CARD: Final = "4111 1111 1111 1111" +CARD_LEAK_PATTERN: Final = re.compile(r"(?" MASKED_EMAIL: Final = "" @@ -532,7 +533,7 @@ def test_default_scope_masks_a_card_number_the_model_generates(rig: Rig, model: answer: Final = _ask(rig, model, surface, rig.guardrails.default_scope, _card_prompt(_marker())) assert answer.text == MASKED_CARD, answer.wire - assert "4111" not in answer.wire, answer.wire + assert CARD_LEAK_PATTERN.search(answer.wire) is None, answer.wire @pytest.mark.parametrize( @@ -547,7 +548,7 @@ def test_spend_log_stores_the_masked_output_the_caller_received(rig: Rig, model: stored: Final = _spend_row(rig, model)["response"] assert "\n".join(_content_strings(stored)) == MASKED_CARD, stored - assert "4111" not in json.dumps(stored), stored + assert CARD_LEAK_PATTERN.search(json.dumps(stored)) is None, stored def test_masking_run_is_recorded_on_the_spend_log_with_the_detected_entities(rig: Rig, model: str) -> None: