Skip to content

Commit 5c1858a

Browse files
committed
simplify tests
1 parent 6753caa commit 5c1858a

2 files changed

Lines changed: 28 additions & 59 deletions

File tree

integrations/ragas/tests/test_evaluator.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ def test_init_with_multiple_metrics(self, monkeypatch):
6060
metrics = [
6161
Faithfulness(llm=llm),
6262
AnswerRelevancy(
63-
llm=llm,
64-
embeddings=embedding_factory("openai", model="text-embedding-3-small", client=AsyncOpenAI())
63+
llm=llm, embeddings=embedding_factory("openai", model="text-embedding-3-small", client=AsyncOpenAI())
6564
),
6665
]
6766
evaluator = RagasEvaluator(ragas_metrics=metrics)

integrations/ragas/tests/test_utils.py

Lines changed: 27 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
from unittest.mock import MagicMock, patch
22

33
import pytest
4+
from openai import AsyncOpenAI
5+
from ragas.embeddings.base import embedding_factory
6+
from ragas.llms import llm_factory
47
from ragas.metrics.base import SimpleBaseMetric
58
from ragas.metrics.result import MetricResult
69

@@ -22,69 +25,36 @@ def score(self, **kwargs) -> MetricResult:
2225
return MetricResult(value=1.0, reason="test")
2326

2427

25-
def make_llm_mock(model: str = "gpt-4o-mini", provider: str = "openai") -> MagicMock:
26-
llm = MagicMock()
27-
llm.model = model
28-
llm.provider = provider
29-
return llm
30-
31-
32-
def make_emb_mock(model: str = "text-embedding-3-small", provider: str = "openai") -> MagicMock:
33-
emb = MagicMock()
34-
emb.model = model
35-
emb.PROVIDER_NAME = provider
36-
return emb
37-
38-
39-
class TestSerializeMetric:
40-
def test_stores_type_path(self):
41-
result = _serialize_metric(ConcreteMetric())
42-
assert "type" in result
43-
assert result["type"].endswith(".ConcreteMetric")
44-
45-
def test_stores_name(self):
46-
result = _serialize_metric(ConcreteMetric(name="my_metric"))
47-
assert result["name"] == "my_metric"
48-
49-
def test_stores_llm(self):
50-
metric = ConcreteMetric(llm=make_llm_mock("gpt-4o-mini", "openai"))
51-
result = _serialize_metric(metric)
52-
assert result["llm"] == {"model": "gpt-4o-mini", "provider": "openai"}
53-
54-
def test_stores_embeddings(self):
55-
metric = ConcreteMetric(embeddings=make_emb_mock("text-embedding-3-small", "openai"))
56-
result = _serialize_metric(metric)
57-
assert result["embeddings"] == {"model": "text-embedding-3-small", "provider": "openai"}
58-
59-
def test_omits_llm_when_none(self):
60-
assert "llm" not in _serialize_metric(ConcreteMetric())
61-
62-
def test_omits_embeddings_when_none(self):
63-
assert "embeddings" not in _serialize_metric(ConcreteMetric())
28+
def test_serialization(monkeypatch):
29+
monkeypatch.setenv("OPENAI_API_KEY", "test")
30+
result = _serialize_metric(
31+
ConcreteMetric(
32+
llm=llm_factory("gpt-4o-mini", client=AsyncOpenAI()),
33+
embeddings=embedding_factory("openai", model="text-embedding-3-small", client=AsyncOpenAI()),
34+
)
35+
)
36+
assert result == {
37+
"type": "tests.test_utils.ConcreteMetric",
38+
"name": "concrete_metric",
39+
"llm": {"model": "gpt-4o-mini", "provider": "openai"},
40+
"embeddings": {"model": "text-embedding-3-small", "provider": "openai"},
41+
}
6442

6543

6644
class TestDeserializeMetric:
67-
def test_reconstructs_instance(self, monkeypatch):
45+
def test_deserialization(self, monkeypatch):
6846
monkeypatch.setenv("OPENAI_API_KEY", "test")
69-
fake_llm = make_llm_mock()
70-
data = _serialize_metric(ConcreteMetric(name="concrete_metric", llm=fake_llm))
71-
72-
with patch("haystack_integrations.components.evaluators.ragas.utils.llm_factory", return_value=fake_llm):
73-
result = _deserialize_metric(data)
74-
47+
data = {
48+
"type": "tests.test_utils.ConcreteMetric",
49+
"name": "concrete_metric",
50+
"llm": {"model": "gpt-4o-mini", "provider": "openai"},
51+
"embeddings": {"model": "text-embedding-3-small", "provider": "openai"},
52+
}
53+
result = _deserialize_metric(data)
7554
assert isinstance(result, ConcreteMetric)
7655
assert result.name == "concrete_metric"
77-
assert result.llm is fake_llm
78-
79-
def test_reconstructs_embeddings(self, monkeypatch):
80-
monkeypatch.setenv("OPENAI_API_KEY", "test")
81-
fake_emb = make_emb_mock()
82-
data = _serialize_metric(ConcreteMetric(name="concrete_metric", embeddings=fake_emb))
83-
84-
with patch("haystack_integrations.components.evaluators.ragas.utils.embedding_factory", return_value=fake_emb):
85-
result = _deserialize_metric(data)
86-
87-
assert result.embeddings is fake_emb
56+
assert result.llm.model == "gpt-4o-mini"
57+
assert result.embeddings.model == "text-embedding-3-small"
8858

8959
def test_raises_for_unsupported_llm_provider(self):
9060
data = {

0 commit comments

Comments
 (0)