Skip to content

Commit 8d708fd

Browse files
committed
implement and use TestAPIBase._create_resource
1 parent 03c4ca9 commit 8d708fd

2 files changed

Lines changed: 23 additions & 16 deletions

File tree

openml/testing.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
import requests
1616

1717
import openml
18-
from openml._api import HTTPCache, HTTPClient, MinIOClient
19-
from openml.enums import APIVersion, RetryPolicy
18+
from openml._api import API_REGISTRY, HTTPCache, HTTPClient, MinIOClient, ResourceAPI
19+
from openml.enums import APIVersion, ResourceType, RetryPolicy
2020
from openml.exceptions import OpenMLServerException
2121
from openml.tasks import TaskType
2222

@@ -316,6 +316,11 @@ def setUp(self, n_levels: int = 1, tmpdir_suffix: str = "") -> None:
316316
}
317317
self.minio_client = MinIOClient(path=cache_dir)
318318

319+
def _create_resource(self, api_version: APIVersion, resource_type: ResourceType) -> ResourceAPI:
320+
http_client = self.http_clients[api_version]
321+
resource_cls = API_REGISTRY[api_version][resource_type]
322+
return resource_cls(http=http_client, minio=self.minio_client)
323+
319324

320325
def check_task_existence(
321326
task_type: TaskType,

tests/test_api/test_versions.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,10 @@ def _tag_and_untag(self):
4848
class TestResourceV1API(TestResourceAPIBase):
4949
def setUp(self):
5050
super().setUp()
51-
http_client = self.http_clients[APIVersion.V1]
52-
self.resource = ResourceV1API(http_client)
53-
self.resource.resource_type = ResourceType.TASK
51+
self.resource = self._create_resource(
52+
api_version=APIVersion.V1,
53+
resource_type=ResourceType.TASK,
54+
)
5455

5556
def test_publish_and_delete(self):
5657
self._publish_and_delete()
@@ -62,9 +63,10 @@ def test_tag_and_untag(self):
6263
class TestResourceV2API(TestResourceAPIBase):
6364
def setUp(self):
6465
super().setUp()
65-
http_client = self.http_clients[APIVersion.V2]
66-
self.resource = ResourceV2API(http_client)
67-
self.resource.resource_type = ResourceType.TASK
66+
self.resource = self._create_resource(
67+
api_version=APIVersion.V2,
68+
resource_type=ResourceType.TASK,
69+
)
6870

6971
def test_publish_and_delete(self):
7072
with pytest.raises(OpenMLNotSupportedError):
@@ -78,14 +80,14 @@ def test_tag_and_untag(self):
7880
class TestResourceFallbackAPI(TestResourceAPIBase):
7981
def setUp(self):
8082
super().setUp()
81-
http_client_v1 = self.http_clients[APIVersion.V1]
82-
resource_v1 = ResourceV1API(http_client_v1)
83-
resource_v1.resource_type = ResourceType.TASK
84-
85-
http_client_v2 = self.http_clients[APIVersion.V2]
86-
resource_v2 = ResourceV2API(http_client_v2)
87-
resource_v2.resource_type = ResourceType.TASK
88-
83+
resource_v1 = self._create_resource(
84+
api_version=APIVersion.V1,
85+
resource_type=ResourceType.TASK,
86+
)
87+
resource_v2 = self._create_resource(
88+
api_version=APIVersion.V2,
89+
resource_type=ResourceType.TASK,
90+
)
8991
self.resource = FallbackProxy(resource_v2, resource_v1)
9092

9193
def test_publish_and_delete(self):

0 commit comments

Comments
 (0)