chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# Copyright (c) Microsoft. All rights reserved.
|
||||
|
||||
|
||||
from unittest.mock import AsyncMock
|
||||
|
||||
import pytest
|
||||
from weaviate import WeaviateAsyncClient
|
||||
from weaviate.collections.collections.async_ import _CollectionsAsync
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def collections_side_effects(request):
|
||||
"""Fixture that returns a dictionary of side effects for the mock async client methods."""
|
||||
return request.param if hasattr(request, "param") else {}
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def mock_async_client(collections_side_effects) -> AsyncMock:
|
||||
"""Fixture to create a mock async client."""
|
||||
async_mock = AsyncMock(spec=WeaviateAsyncClient)
|
||||
async_mock.collections = AsyncMock(spec=_CollectionsAsync)
|
||||
async_mock.collections.create = AsyncMock()
|
||||
async_mock.collections.delete = AsyncMock()
|
||||
async_mock.collections.exists = AsyncMock()
|
||||
|
||||
if collections_side_effects:
|
||||
for method_name, exception in collections_side_effects.items():
|
||||
getattr(async_mock.collections, method_name).side_effect = exception
|
||||
|
||||
return async_mock
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def weaviate_unit_test_env(monkeypatch, exclude_list, override_env_param_dict):
|
||||
"""Fixture to set environment variables for Weaviate unit tests."""
|
||||
if exclude_list is None:
|
||||
exclude_list = []
|
||||
|
||||
if override_env_param_dict is None:
|
||||
override_env_param_dict = {}
|
||||
|
||||
env_vars = {
|
||||
"WEAVIATE_URL": "test-api-key",
|
||||
"WEAVIATE_API_KEY": "https://test-endpoint.com",
|
||||
"WEAVIATE_LOCAL_HOST": "localhost",
|
||||
"WEAVIATE_LOCAL_PORT": 8080,
|
||||
"WEAVIATE_LOCAL_GRPC_PORT": 8081,
|
||||
"WEAVIATE_USE_EMBED": True,
|
||||
}
|
||||
|
||||
env_vars.update(override_env_param_dict)
|
||||
|
||||
for key, value in env_vars.items():
|
||||
if key not in exclude_list:
|
||||
monkeypatch.setenv(key, value)
|
||||
else:
|
||||
monkeypatch.delenv(key, raising=False)
|
||||
|
||||
return env_vars
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def clear_weaviate_env(monkeypatch):
|
||||
"""Fixture to clear the environment variables for Weaviate unit tests."""
|
||||
monkeypatch.delenv("WEAVIATE_URL", raising=False)
|
||||
monkeypatch.delenv("WEAVIATE_API_KEY", raising=False)
|
||||
monkeypatch.delenv("WEAVIATE_LOCAL_HOST", raising=False)
|
||||
monkeypatch.delenv("WEAVIATE_LOCAL_PORT", raising=False)
|
||||
monkeypatch.delenv("WEAVIATE_LOCAL_GRPC_PORT", raising=False)
|
||||
monkeypatch.delenv("WEAVIATE_USE_EMBED", raising=False)
|
||||
Reference in New Issue
Block a user