diff options
Diffstat (limited to 'tests/vcr/__init__.py')
-rw-r--r-- | tests/vcr/__init__.py | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/tests/vcr/__init__.py b/tests/vcr/__init__.py deleted file mode 100644 index ffd4fa35f..000000000 --- a/tests/vcr/__init__.py +++ /dev/null @@ -1,92 +0,0 @@ -import os -from hashlib import sha256 - -import openai.api_requestor -import pytest -from pytest_mock import MockerFixture - -from .vcr_filter import ( - PROXY, - before_record_request, - before_record_response, - freeze_request_body, -) - -DEFAULT_RECORD_MODE = "new_episodes" -BASE_VCR_CONFIG = { - "before_record_request": before_record_request, - "before_record_response": before_record_response, - "filter_headers": [ - "Authorization", - "AGENT-MODE", - "AGENT-TYPE", - "OpenAI-Organization", - "X-OpenAI-Client-User-Agent", - "User-Agent", - ], - "match_on": ["method", "headers"], -} - - -@pytest.fixture(scope="session") -def vcr_config(get_base_vcr_config): - return get_base_vcr_config - - -@pytest.fixture(scope="session") -def get_base_vcr_config(request): - record_mode = request.config.getoption("--record-mode", default="new_episodes") - config = BASE_VCR_CONFIG - - if record_mode is None: - config["record_mode"] = DEFAULT_RECORD_MODE - - return config - - -@pytest.fixture() -def vcr_cassette_dir(request): - test_name = os.path.splitext(request.node.name)[0] - return os.path.join("tests/Auto-GPT-test-cassettes", test_name) - - -def patch_api_base(requestor: openai.api_requestor.APIRequestor): - new_api_base = f"{PROXY}/v1" - requestor.api_base = new_api_base - return requestor - - -@pytest.fixture -def patched_api_requestor(mocker: MockerFixture): - init_requestor = openai.api_requestor.APIRequestor.__init__ - prepare_request = openai.api_requestor.APIRequestor._prepare_request_raw - - def patched_init_requestor(requestor, *args, **kwargs): - init_requestor(requestor, *args, **kwargs) - patch_api_base(requestor) - - def patched_prepare_request(self, *args, **kwargs): - url, headers, data = prepare_request(self, *args, **kwargs) - - if PROXY: - headers["AGENT-MODE"] = os.environ.get("AGENT_MODE") - headers["AGENT-TYPE"] = os.environ.get("AGENT_TYPE") - - # Add hash header for cheap & fast matching on cassette playback - headers["X-Content-Hash"] = sha256( - freeze_request_body(data), usedforsecurity=False - ).hexdigest() - - return url, headers, data - - if PROXY: - mocker.patch.object( - openai.api_requestor.APIRequestor, - "__init__", - new=patched_init_requestor, - ) - mocker.patch.object( - openai.api_requestor.APIRequestor, - "_prepare_request_raw", - new=patched_prepare_request, - ) |