From f89dd334560e34b2da7cd9f776127f5ae3346bb2 Mon Sep 17 00:00:00 2001 From: Jan Soubusta Date: Mon, 16 Mar 2026 19:43:32 +0100 Subject: [PATCH] chore: stabilize VCR cassette output to reduce regeneration noise Add X-GDC-CANCEL-TOKEN to NON_STATIC_HEADERS so its random UUID values are replaced with PLACEHOLDER, matching DATE and X-GDC-TRACE-ID. Switch yaml.dump sort_keys from False to True so all dictionary keys (including request/response bodies) are serialized in deterministic alphabetical order, eliminating key reordering diffs on regeneration. Co-authored-by: Claude Opus 4.6 (1M context) risk: low --- packages/tests-support/src/tests_support/vcrpy_utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tests-support/src/tests_support/vcrpy_utils.py b/packages/tests-support/src/tests_support/vcrpy_utils.py index 73450d61f..eafd54c31 100644 --- a/packages/tests-support/src/tests_support/vcrpy_utils.py +++ b/packages/tests-support/src/tests_support/vcrpy_utils.py @@ -12,7 +12,7 @@ from vcr.record_mode import RecordMode VCR_MATCH_ON = ("method", "scheme", "host", "port", "path", "query", "body") -NON_STATIC_HEADERS = ["DATE", "X-GDC-TRACE-ID"] +NON_STATIC_HEADERS = ["DATE", "X-GDC-CANCEL-TOKEN", "X-GDC-TRACE-ID"] HEADERS_STR = "headers" PLACEHOLDER = ["PLACEHOLDER"] @@ -76,7 +76,7 @@ def serialize(self, cassette_dict: dict[str, Any]) -> str: except (JSONDecodeError, UnicodeDecodeError): # these exceptions are expected while getting file content continue - return yaml.dump(cassette_dict, Dumper=IndentDumper, sort_keys=False) + return yaml.dump(cassette_dict, Dumper=IndentDumper, sort_keys=True) def custom_before_request(request, headers_str: str = HEADERS_STR):