Skip to content

Commit 178cd8b

Browse files
added partial tests
1 parent 42d067a commit 178cd8b

1 file changed

Lines changed: 87 additions & 0 deletions

File tree

tests/test_api/test_setups.py

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# License: BSD 3-Clause
2+
from __future__ import annotations
3+
4+
import pytest
5+
from openml._api.config import settings
6+
7+
from openml._api.resources.setups import SetupsV1, SetupsV2
8+
from openml.setups.setup import OpenMLSetup
9+
from openml.testing import TestAPIBase
10+
from openml._api.resources.base.fallback import FallbackProxy
11+
12+
13+
14+
class TestSetupsV1(TestAPIBase):
15+
"""Tests for V1 XML API implementation of setups."""
16+
17+
_multiprocess_can_split_ = True
18+
19+
def setUp(self) -> None:
20+
super().setUp()
21+
self.client = self._get_http_client(
22+
server=settings.api.v1.server,
23+
base_url=settings.api.v1.base_url,
24+
api_key=settings.api.v1.api_key,
25+
timeout=settings.api.v1.timeout,
26+
retries=settings.connection.retries,
27+
retry_policy=settings.connection.retry_policy,
28+
)
29+
self.resource = SetupsV1(self.client)
30+
31+
@pytest.mark.uses_test_server()
32+
def test_list(self):
33+
setups = self.resource.list(limit=10, offset=0)
34+
35+
assert isinstance(setups, list)
36+
assert len(setups) > 0
37+
assert all(isinstance(s, OpenMLSetup) for s in setups)
38+
39+
40+
def test_get(self):
41+
setup_id = 1
42+
xml_content, setup = self.resource.get(setup_id)
43+
44+
assert isinstance(xml_content, str)
45+
assert isinstance(setup, OpenMLSetup)
46+
assert setup.setup_id == setup_id
47+
48+
49+
class TestSetupsV2(TestAPIBase):
50+
"""Tests for V2 JSON API implementation of setups."""
51+
52+
_multiprocess_can_split_ = True
53+
54+
def setUp(self) -> None:
55+
super().setUp()
56+
self.client = self._get_http_client(
57+
server=settings.api.v2.server,
58+
base_url=settings.api.v2.base_url,
59+
api_key=settings.api.v2.api_key,
60+
timeout=settings.api.v2.timeout,
61+
retries=settings.connection.retries,
62+
retry_policy=settings.connection.retry_policy,
63+
)
64+
self.resource = SetupsV2(self.client)
65+
66+
class TestSetupsCombined(TestAPIBase):
67+
def setUp(self):
68+
super().setUp()
69+
self.v1_client = self._get_http_client(
70+
server=settings.api.v1.server,
71+
base_url=settings.api.v1.base_url,
72+
api_key=settings.api.v1.api_key,
73+
timeout=settings.api.v1.timeout,
74+
retries=settings.connection.retries,
75+
retry_policy=settings.connection.retry_policy,
76+
)
77+
self.v2_client = self._get_http_client(
78+
server=settings.api.v2.server,
79+
base_url=settings.api.v2.base_url,
80+
api_key=settings.api.v2.api_key,
81+
timeout=settings.api.v2.timeout,
82+
retries=settings.connection.retries,
83+
retry_policy=settings.connection.retry_policy,
84+
)
85+
self.resource_v1 = SetupsV1(self.client)
86+
self.resource_v2 = SetupsV2(self.client)
87+
self.resource_fallback = FallbackProxy(self.resource_v2, self.resource_v1)

0 commit comments

Comments
 (0)