Skip to content

Commit

Permalink
Move more tests from /unit to /integration
Browse files Browse the repository at this point in the history
  • Loading branch information
malexw committed Aug 2, 2024
1 parent d40ba86 commit 70c9a9f
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 123 deletions.
43 changes: 43 additions & 0 deletions src/backend/tests/integration/routers/test_conversation.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,46 @@ def test_search_conversations_no_conversations(

assert response.status_code == 200
assert response.json() == []


@pytest.mark.skipif(
os.environ.get("COHERE_API_KEY") is None,
reason="Cohere API key not set, skipping test",
)
def test_search_conversations_with_reranking_sends_metrics(
session_client: TestClient,
session: Session,
user: User,
) -> None:
conversation1 = get_factory("Conversation", session).create(
title="Hello, how are you?", text_messages=[], user_id=user.id
)
conversation2 = get_factory("Conversation", session).create(
title="There are are seven colors in the rainbow",
text_messages=[],
user_id=user.id,
)
with patch(
"backend.services.metrics.report_metrics",
return_value=None,
) as mock_metrics:
response = session_client.get(
"/v1/conversations:search",
headers={
"User-Id": user.id,
"Deployment-Name": ModelDeploymentName.CoherePlatform,
},
params={"query": "color"},
)
results = response.json()
assert response.status_code == 200
m_args: MetricsData = mock_metrics.await_args.args[0].signal
assert m_args.user_id == user.id
assert m_args.model == "rerank-english-v2.0"

assert m_args.message_type == MetricsMessageType.RERANK_API_SUCCESS
assert m_args.duration_ms is not None and m_args.duration_ms > 0
assert m_args.assistant_id is not None
assert m_args.assistant.name is not None
assert m_args.model is not None
assert m_args.search_units > 0
80 changes: 0 additions & 80 deletions src/backend/tests/unit/routers/test_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,86 +326,6 @@ def test_get_nonexistent_agent(
assert response.json() == {"detail": "Agent with ID: 456 not found."}


def test_update_agent_mock_metrics(
session_client: TestClient, session: Session, user
) -> None:
agent = get_factory("Agent", session).create(
name="test agent",
version=1,
description="test description",
preamble="test preamble",
temperature=0.5,
model="command-r-plus",
deployment=ModelDeploymentName.CoherePlatform,
user_id=user.id,
)

request_json = {
"name": "updated name",
"version": 2,
"description": "updated description",
"preamble": "updated preamble",
"temperature": 0.7,
"model": "command-r",
"deployment": ModelDeploymentName.CoherePlatform,
}

with patch(
"backend.services.metrics.report_metrics",
return_value=None,
) as mock_metrics:
response = session_client.put(
f"/v1/agents/{agent.id}",
json=request_json,
headers={"User-Id": user.id},
)

assert response.status_code == 200
m_args: MetricsData = mock_metrics.await_args.args[0].signal
assert m_args.message_type == MetricsMessageType.ASSISTANT_UPDATED
assert m_args.assistant.name == request_json["name"]
assert m_args.user.fullname == user.fullname


def test_update_agent(session_client: TestClient, session: Session, user) -> None:
agent = get_factory("Agent", session).create(
name="test agent",
version=1,
description="test description",
preamble="test preamble",
temperature=0.5,
model="command-r-plus",
deployment=ModelDeploymentName.CoherePlatform,
user_id=user.id,
)

request_json = {
"name": "updated name",
"version": 2,
"description": "updated description",
"preamble": "updated preamble",
"temperature": 0.7,
"model": "command-r",
"deployment": ModelDeploymentName.CoherePlatform,
}

response = session_client.put(
f"/v1/agents/{agent.id}",
json=request_json,
headers={"User-Id": user.id},
)

assert response.status_code == 200
updated_agent = response.json()
assert updated_agent["name"] == "updated name"
assert updated_agent["version"] == 2
assert updated_agent["description"] == "updated description"
assert updated_agent["preamble"] == "updated preamble"
assert updated_agent["temperature"] == 0.7
assert updated_agent["model"] == "command-r"
assert updated_agent["deployment"] == ModelDeploymentName.CoherePlatform


def test_partial_update_agent(
session_client: TestClient, session: Session, user
) -> None:
Expand Down
43 changes: 0 additions & 43 deletions src/backend/tests/unit/routers/test_conversation.py
Original file line number Diff line number Diff line change
Expand Up @@ -455,49 +455,6 @@ def test_delete_conversation_missing_user_id(
assert response.json() == {"detail": "User-Id required in request headers."}


@pytest.mark.skipif(
os.environ.get("COHERE_API_KEY") is None,
reason="Cohere API key not set, skipping test",
)
def test_search_conversations_with_reranking_sends_metrics(
session_client: TestClient,
session: Session,
user: User,
) -> None:
conversation1 = get_factory("Conversation", session).create(
title="Hello, how are you?", text_messages=[], user_id=user.id
)
conversation2 = get_factory("Conversation", session).create(
title="There are are seven colors in the rainbow",
text_messages=[],
user_id=user.id,
)
with patch(
"backend.services.metrics.report_metrics",
return_value=None,
) as mock_metrics:
response = session_client.get(
"/v1/conversations:search",
headers={
"User-Id": user.id,
"Deployment-Name": ModelDeploymentName.CoherePlatform,
},
params={"query": "color"},
)
results = response.json()
assert response.status_code == 200
m_args: MetricsData = mock_metrics.await_args.args[0].signal
assert m_args.user_id == user.id
assert m_args.model == "rerank-english-v2.0"

assert m_args.message_type == MetricsMessageType.RERANK_API_SUCCESS
assert m_args.duration_ms is not None and m_args.duration_ms > 0
assert m_args.assistant_id is not None
assert m_args.assistant.name is not None
assert m_args.model is not None
assert m_args.search_units > 0


def test_search_conversations_missing_user_id(
session_client: TestClient,
session: Session,
Expand Down

0 comments on commit 70c9a9f

Please sign in to comment.