Skip to content

Commit 1ae3fb6

Browse files
update tests structure
1 parent 6c12998 commit 1ae3fb6

1 file changed

Lines changed: 65 additions & 11 deletions

File tree

tests/test_api/test_evaluation_measures.py

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,95 @@
22
from __future__ import annotations
33

44
import pytest
5+
from openml._api.config import settings
56

6-
from openml._api.runtime.core import build_backend
7-
from openml.testing import TestBase
7+
from openml._api.resources.evaluation_measures import EvaluationMeasuresV1, EvaluationMeasuresV2
8+
from openml.testing import TestAPIBase
9+
from openml._api.resources.base.fallback import FallbackProxy
810

911

10-
class TestEvaluationMeasuresV1(TestBase):
12+
class TestEvaluationMeasuresV1(TestAPIBase):
1113
"""Tests for V1 XML API implementation of evaluation measures."""
1214

1315
_multiprocess_can_split_ = True
1416

1517
def setUp(self) -> None:
1618
super().setUp()
17-
backend = build_backend('v1', strict=True)
18-
self.api = backend.evaluation_measures
19+
self.client = self._get_http_client(
20+
server=settings.api.v1.server,
21+
base_url=settings.api.v1.base_url,
22+
api_key=settings.api.v1.api_key,
23+
timeout=settings.api.v1.timeout,
24+
retries=settings.connection.retries,
25+
retry_policy=settings.connection.retry_policy,
26+
)
27+
self.resource = EvaluationMeasuresV1(self.client)
1928

2029
@pytest.mark.uses_test_server()
2130
def test_list(self):
22-
measures = self.api.list()
31+
measures = self.resource.list()
2332
assert isinstance(measures, list) is True
2433
assert all(isinstance(s, str) for s in measures) is True
2534

2635

27-
class TestEvaluationMeasuresV2(TestBase):
36+
class TestEvaluationMeasuresV2(TestAPIBase):
2837
"""Tests for V2 JSON API implementation of evaluation measures."""
2938

3039
_multiprocess_can_split_ = True
3140

3241
def setUp(self) -> None:
3342
super().setUp()
34-
backend = build_backend('v2', strict=True)
35-
self.api = backend.evaluation_measures
43+
self.client = self._get_http_client(
44+
server=settings.api.v2.server,
45+
base_url=settings.api.v2.base_url,
46+
api_key=settings.api.v2.api_key,
47+
timeout=settings.api.v2.timeout,
48+
retries=settings.connection.retries,
49+
retry_policy=settings.connection.retry_policy,
50+
)
51+
self.resource = EvaluationMeasuresV2(self.client)
3652

3753
@pytest.mark.uses_test_server()
3854
def test_list(self):
39-
measures = self.api.list()
55+
measures = self.resource.list()
4056
assert isinstance(measures, list) is True
4157
assert all(isinstance(s, str) for s in measures) is True
42-
58+
59+
60+
class TestEvaluationMeasuresCombined(TestAPIBase):
61+
def setUp(self):
62+
super().setUp()
63+
self.v1_client = self._get_http_client(
64+
server=settings.api.v1.server,
65+
base_url=settings.api.v1.base_url,
66+
api_key=settings.api.v1.api_key,
67+
timeout=settings.api.v1.timeout,
68+
retries=settings.connection.retries,
69+
retry_policy=settings.connection.retry_policy,
70+
)
71+
self.v2_client = self._get_http_client(
72+
server=settings.api.v2.server,
73+
base_url=settings.api.v2.base_url,
74+
api_key=settings.api.v2.api_key,
75+
timeout=settings.api.v2.timeout,
76+
retries=settings.connection.retries,
77+
retry_policy=settings.connection.retry_policy,
78+
)
79+
self.resource_v1 = EvaluationMeasuresV1(self.v1_client)
80+
self.resource_v2 = EvaluationMeasuresV2(self.v2_client)
81+
self.resource_fallback = FallbackProxy(self.resource_v2, self.resource_v1)
82+
83+
@pytest.mark.uses_test_server()
84+
def test_list_matches(self):
85+
output_v1 = self.resource_v1.list()
86+
output_v2 = self.resource_v2.list()
87+
88+
assert isinstance(output_v1, list)
89+
assert isinstance(output_v2, list)
90+
assert output_v1 == output_v2
91+
92+
@pytest.mark.uses_test_server()
93+
def test_list_fallback(self):
94+
output_fallback = self.resource_fallback.list()
95+
assert isinstance(output_fallback, list)
96+
assert all(isinstance(s, str) for s in output_fallback)

0 commit comments

Comments
 (0)