Skip to content

Commit c124a84

Browse files
committed
Update tests
1 parent ae0871d commit c124a84

File tree

4 files changed

+93
-6
lines changed

4 files changed

+93
-6
lines changed

.vscode/settings.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,10 @@
2222
"ssl": true
2323
}
2424
}
25-
]
25+
],
26+
"python.testing.pytestArgs": [
27+
"tests"
28+
],
29+
"python.testing.unittestEnabled": false,
30+
"python.testing.pytestEnabled": true
2631
}

tests/conftest.py

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ def mock_session_env(monkeypatch_session):
5353
monkeypatch_session.setenv("POSTGRES_DATABASE", POSTGRES_DATABASE)
5454
monkeypatch_session.setenv("POSTGRES_PASSWORD", POSTGRES_PASSWORD)
5555
monkeypatch_session.setenv("POSTGRES_SSL", POSTGRES_SSL)
56-
monkeypatch_session.setenv("POSTGRESQL_DATABASE_URL", POSTGRESQL_DATABASE_URL)
5756
monkeypatch_session.setenv("RUNNING_IN_PRODUCTION", "False")
5857
# Azure Subscription
5958
monkeypatch_session.setenv("AZURE_SUBSCRIPTION_ID", "test-storage-subid")
@@ -68,11 +67,62 @@ def mock_session_env(monkeypatch_session):
6867
monkeypatch_session.setenv("AZURE_OPENAI_EMBED_MODEL", "text-embedding-ada-002")
6968
monkeypatch_session.setenv("AZURE_OPENAI_EMBED_MODEL_DIMENSIONS", "1536")
7069
monkeypatch_session.setenv("AZURE_OPENAI_KEY", "fakekey")
71-
# Allowed Origin
72-
monkeypatch_session.setenv("ALLOWED_ORIGIN", "https://frontend.com")
7370

74-
if os.getenv("AZURE_USE_AUTHENTICATION") is not None:
75-
monkeypatch_session.delenv("AZURE_USE_AUTHENTICATION")
71+
yield
72+
73+
74+
@pytest.fixture(scope="session")
75+
def mock_session_env_openai(monkeypatch_session):
76+
"""Mock the environment variables for testing."""
77+
# Note that this does *not* clear existing env variables by default-
78+
# we used to specify clear=True but this caused issues with Playwright tests
79+
# https://github.com/microsoft/playwright-python/issues/2506
80+
with mock.patch.dict(os.environ):
81+
# Database
82+
monkeypatch_session.setenv("POSTGRES_HOST", POSTGRES_HOST)
83+
monkeypatch_session.setenv("POSTGRES_USERNAME", POSTGRES_USERNAME)
84+
monkeypatch_session.setenv("POSTGRES_DATABASE", POSTGRES_DATABASE)
85+
monkeypatch_session.setenv("POSTGRES_PASSWORD", POSTGRES_PASSWORD)
86+
monkeypatch_session.setenv("POSTGRES_SSL", POSTGRES_SSL)
87+
monkeypatch_session.setenv("RUNNING_IN_PRODUCTION", "False")
88+
# Azure Subscription
89+
monkeypatch_session.setenv("AZURE_SUBSCRIPTION_ID", "test-storage-subid")
90+
# OpenAI.com OpenAI
91+
monkeypatch_session.setenv("OPENAI_CHAT_HOST", "openai")
92+
monkeypatch_session.setenv("OPENAI_EMBED_HOST", "openai")
93+
monkeypatch_session.setenv("OPENAICOM_KEY", "fakekey")
94+
monkeypatch_session.setenv("OPENAICOM_CHAT_MODEL", "gpt-3.5-turbo")
95+
monkeypatch_session.setenv("OPENAICOM_EMBED_MODEL", "text-embedding-ada-002")
96+
monkeypatch_session.setenv("OPENAICOM_EMBED_MODEL_DIMENSIONS", "1536")
97+
monkeypatch_session.setenv("OPENAICOM_EMBEDDING_COLUMN", "embedding_ada002")
98+
99+
yield
100+
101+
102+
@pytest.fixture(scope="session")
103+
def mock_session_env_ollama(monkeypatch_session):
104+
"""Mock the environment variables for testing."""
105+
# Note that this does *not* clear existing env variables by default-
106+
# we used to specify clear=True but this caused issues with Playwright tests
107+
# https://github.com/microsoft/playwright-python/issues/2506
108+
with mock.patch.dict(os.environ):
109+
# Database
110+
monkeypatch_session.setenv("POSTGRES_HOST", POSTGRES_HOST)
111+
monkeypatch_session.setenv("POSTGRES_USERNAME", POSTGRES_USERNAME)
112+
monkeypatch_session.setenv("POSTGRES_DATABASE", POSTGRES_DATABASE)
113+
monkeypatch_session.setenv("POSTGRES_PASSWORD", POSTGRES_PASSWORD)
114+
monkeypatch_session.setenv("POSTGRES_SSL", POSTGRES_SSL)
115+
monkeypatch_session.setenv("RUNNING_IN_PRODUCTION", "False")
116+
# Azure Subscription
117+
monkeypatch_session.setenv("AZURE_SUBSCRIPTION_ID", "test-storage-subid")
118+
# Ollama OpenAI
119+
monkeypatch_session.setenv("OPENAI_CHAT_HOST", "ollama")
120+
monkeypatch_session.setenv("OPENAI_EMBED_HOST", "ollama")
121+
monkeypatch_session.setenv("OLLAMA_ENDPOINT", "http://host.docker.internal:11434/v1")
122+
monkeypatch_session.setenv("OLLAMA_CHAT_MODEL", "llama3.1")
123+
monkeypatch_session.setenv("OLLAMA_EMBED_MODEL", "nomic-embed-text")
124+
monkeypatch_session.setenv("OLLAMA_EMBEDDING_COLUMN", "embedding_nomic")
125+
76126
yield
77127

78128

tests/test_dependencies.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,26 @@ async def test_get_common_parameters(mock_session_env):
1313
assert result.openai_embed_deployment == "text-embedding-ada-002"
1414

1515

16+
@pytest.mark.asyncio
17+
async def test_get_common_parameters_ollama(mock_session_env_ollama):
18+
result = await common_parameters()
19+
assert result.openai_chat_model == "llama3.1"
20+
assert result.openai_embed_model == "nomic-embed-text"
21+
assert result.openai_embed_dimensions is None
22+
assert result.openai_chat_deployment is None
23+
assert result.openai_embed_deployment is None
24+
25+
26+
@pytest.mark.asyncio
27+
async def test_get_common_parameters_openai(mock_session_env_openai):
28+
result = await common_parameters()
29+
assert result.openai_chat_model == "gpt-3.5-turbo"
30+
assert result.openai_embed_model == "text-embedding-ada-002"
31+
assert result.openai_embed_dimensions == 1536
32+
assert result.openai_chat_deployment is None
33+
assert result.openai_embed_deployment is None
34+
35+
1636
@pytest.mark.asyncio
1737
async def test_get_azure_credentials(mock_session_env, mock_default_azure_credential):
1838
result = await get_azure_credentials()

tests/test_embeddings.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,18 @@ async def test_compute_text_embedding(mock_default_azure_credential, mock_openai
1313
openai_client=openai_embed_client,
1414
embed_model="text-embedding-ada-002",
1515
embed_deployment="text-embedding-ada-002",
16+
)
17+
assert result == test_data.embeddings
18+
19+
20+
@pytest.mark.asyncio
21+
async def test_compute_text_embedding_dimensions(mock_default_azure_credential, mock_openai_embedding):
22+
openai_embed_client = await create_openai_embed_client(mock_default_azure_credential)
23+
result = await compute_text_embedding(
24+
q="test",
25+
openai_client=openai_embed_client,
26+
embed_model="text-embedding-3-small",
27+
embed_deployment="text-embedding-3-small",
1628
embedding_dimensions=1536,
1729
)
1830
assert result == test_data.embeddings

0 commit comments

Comments
 (0)