""" VCR.py configuration for recording/replaying HTTP interactions. This allows tests to run fast by replaying recorded API responses instead of making real HTTP calls every time. """ import vcr # Configure VCR instance my_vcr = vcr.VCR( # Store cassettes in tests/cassettes/ directory cassette_library_dir="tests/cassettes", # Record mode: once = record once, then replay # Use 'new_episodes' to record new interactions but replay existing ones record_mode="once", # Match requests by method and URI match_on=["method", "scheme", "host", "port", "path", "query"], # Filter out sensitive data from recordings filter_headers=["authorization", "x-api-key"], # Decode compressed responses for better diffs decode_compressed_response=True, # Serialize as YAML for human-readable diffs serializer="yaml", # Path transformer to organize cassettes path_transformer=vcr.VCR.ensure_suffix(".yaml"), ) def scrub_request(request): """Remove sensitive data from recorded requests.""" # Add any request scrubbing logic here return request def scrub_response(response): """Remove sensitive data from recorded responses.""" # Add any response scrubbing logic here return response # Register request/response scrubbers my_vcr.before_record_request = scrub_request my_vcr.before_record_response = scrub_response