Skip to content

Commit f89dd33

Browse files
jaceksanclaude
andcommitted
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) <noreply@anthropic.com> risk: low
1 parent 1cf96b9 commit f89dd33

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

packages/tests-support/src/tests_support/vcrpy_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from vcr.record_mode import RecordMode
1313

1414
VCR_MATCH_ON = ("method", "scheme", "host", "port", "path", "query", "body")
15-
NON_STATIC_HEADERS = ["DATE", "X-GDC-TRACE-ID"]
15+
NON_STATIC_HEADERS = ["DATE", "X-GDC-CANCEL-TOKEN", "X-GDC-TRACE-ID"]
1616
HEADERS_STR = "headers"
1717
PLACEHOLDER = ["PLACEHOLDER"]
1818

@@ -76,7 +76,7 @@ def serialize(self, cassette_dict: dict[str, Any]) -> str:
7676
except (JSONDecodeError, UnicodeDecodeError):
7777
# these exceptions are expected while getting file content
7878
continue
79-
return yaml.dump(cassette_dict, Dumper=IndentDumper, sort_keys=False)
79+
return yaml.dump(cassette_dict, Dumper=IndentDumper, sort_keys=True)
8080

8181

8282
def custom_before_request(request, headers_str: str = HEADERS_STR):

0 commit comments

Comments
 (0)