mirror of
https://github.com/hwchase17/langchain.git
synced 2026-07-12 19:31:24 +00:00
Anthropic integration tests can run with LangSmith tracing enabled in scheduled CI, which sends LangSmith API requests while VCR cassettes are active. Ignore LangSmith ingest endpoints in the Anthropic VCR config so cassette playback only matches Anthropic traffic. ## Changes - Add `api.smith.langchain.com` to the Anthropic VCR `ignore_hosts` configuration while preserving any hosts from the shared base config. - Keep existing Anthropic cassette serialization, request redaction, and response redaction behavior unchanged.
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from typing import Any
|
|
|
|
import pytest
|
|
from langchain_tests.conftest import CustomPersister, CustomSerializer, base_vcr_config
|
|
from vcr import VCR # type: ignore[import-untyped]
|
|
|
|
|
|
def remove_request_headers(request: Any) -> Any:
|
|
for k in request.headers:
|
|
request.headers[k] = "**REDACTED**"
|
|
return request
|
|
|
|
|
|
def remove_response_headers(response: dict) -> dict:
|
|
for k in response["headers"]:
|
|
response["headers"][k] = "**REDACTED**"
|
|
return response
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def vcr_config() -> dict:
|
|
"""Extend the default configuration coming from langchain_tests."""
|
|
config = base_vcr_config()
|
|
config["before_record_request"] = remove_request_headers
|
|
config["before_record_response"] = remove_response_headers
|
|
config["serializer"] = "yaml.gz"
|
|
config["path_transformer"] = VCR.ensure_suffix(".yaml.gz")
|
|
config["ignore_hosts"] = [
|
|
*config.get("ignore_hosts", []),
|
|
"api.smith.langchain.com",
|
|
]
|
|
|
|
return config
|
|
|
|
|
|
def pytest_recording_configure(config: dict, vcr: VCR) -> None:
|
|
vcr.register_persister(CustomPersister())
|
|
vcr.register_serializer("yaml.gz", CustomSerializer())
|