22from __future__ import annotations
33
44import 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