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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy