Skip to content

Commit 1c8bd58

Browse files
committed
remove old test changes and old mock tests
Signed-off-by: Omswastik-11 <omswastikpanda11@gmail.com>
1 parent f9530f1 commit 1c8bd58

4 files changed

Lines changed: 28 additions & 85 deletions

File tree

openml/_api/resources/flow.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
from typing import Any
3+
from typing import Any, NoReturn
44
from urllib.parse import quote
55

66
import pandas as pd
@@ -220,11 +220,11 @@ def list(
220220
offset: int | None = None, # noqa: ARG002
221221
tag: str | None = None, # noqa: ARG002
222222
uploader: str | None = None, # noqa: ARG002
223-
) -> pd.DataFrame:
223+
) -> NoReturn:
224224
self._not_supported(method="list")
225225

226226
@staticmethod
227-
def _convert_v2_to_v1_format(v2_json: dict[str, Any]) -> dict[str, dict]:
227+
def _convert_v2_to_v1_format(v2_json: dict[str, Any]) -> dict[str, Any]:
228228
"""Convert v2 JSON response to v1 XML-dict format for OpenMLFlow._from_dict().
229229
230230
Parameters

openml/flows/functions.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,12 @@ def get_flow(
4848
4949
Raises
5050
------
51-
OpenMLCacheException
52-
When cached flow files are corrupted or cannot be read.
5351
OpenMLServerException
5452
When the REST API call fails.
5553
5654
Side Effects
5755
------------
58-
- Writes to ``openml.config.cache_directory/flows/{flow_id}/flow.xml``
59-
when the flow is downloaded from the server.
56+
- Caches the retrieved flow using the HTTP client's caching mechanism.
6057
6158
Preconditions
6259
-------------

tests/test_api/test_flow.py

Lines changed: 11 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,7 @@ def flow_v2(http_client_v2, minio_client) -> FlowV2API:
2424
return FlowV2API(http=http_client_v2, minio=minio_client)
2525

2626

27-
@pytest.fixture
28-
def with_v2_server_config(test_server_v1, test_server_v2) -> Iterator[None]:
29-
old_server = openml.config.servers[APIVersion.V2]["server"]
30-
derived_v2_server = test_server_v1.replace("/api/v1/xml/", "/api/v2/")
31-
openml.config.servers[APIVersion.V2]["server"] = test_server_v2 or derived_v2_server
32-
yield
33-
openml.config.servers[APIVersion.V2]["server"] = old_server
27+
3428

3529

3630
def _assert_flow_shape(flow: OpenMLFlow) -> None:
@@ -41,11 +35,13 @@ def _assert_flow_shape(flow: OpenMLFlow) -> None:
4135
assert len(flow.name) > 0
4236

4337

38+
@pytest.mark.test_server()
4439
def test_flow_v1_get(flow_v1):
4540
flow = flow_v1.get(flow_id=1)
4641
_assert_flow_shape(flow)
4742

4843

44+
@pytest.mark.test_server()
4945
def test_flow_v1_list(flow_v1):
5046
limit = 5
5147
flows_df = flow_v1.list(limit=limit)
@@ -59,6 +55,7 @@ def test_flow_v1_list(flow_v1):
5955
assert "uploader" in flows_df.columns
6056

6157

58+
@pytest.mark.test_server()
6259
def test_flow_v1_list_with_offset(flow_v1):
6360
limit = 5
6461
flows_df = flow_v1.list(limit=limit, offset=10)
@@ -166,33 +163,13 @@ def test_flow_v1_delete_mocked(flow_v1, test_apikey_v1):
166163
)
167164

168165

169-
def test_flow_v2_get(flow_v2, with_v2_server_config):
170-
v2_payload = {
171-
"id": 1,
172-
"uploader": 1,
173-
"name": "weka.SMO",
174-
"version": "1",
175-
"external_version": "3.8.6",
176-
"description": "SMO classifier",
177-
"upload_date": "2020-01-01T00:00:00",
178-
"language": "English",
179-
"dependencies": "weka==3.8.6",
180-
"class_name": "weka.SMO",
181-
"custom_name": "weka.SMO",
182-
}
183-
184-
with patch.object(Session, "request") as mock_request:
185-
mock_request.return_value = Response()
186-
mock_request.return_value.status_code = 200
187-
mock_request.return_value._content = b"{}"
188-
mock_request.return_value.json = lambda: v2_payload
189-
190-
flow = flow_v2.get(flow_id=1)
191-
166+
@pytest.mark.test_server()
167+
def test_flow_v2_get(flow_v2):
168+
flow = flow_v2.get(flow_id=1)
192169
_assert_flow_shape(flow)
193170

194171

195-
def test_flow_v2_exists_nonexistent(flow_v2, with_v2_server_config):
172+
def test_flow_v2_exists_nonexistent(flow_v2):
196173
with patch.object(Session, "request") as mock_request:
197174
mock_request.return_value = Response()
198175
mock_request.return_value.status_code = 200
@@ -223,29 +200,10 @@ def test_flow_v2_publish_not_supported(flow_v2):
223200
flow_v2.publish(path="flow", files={"description": "<flow/>"})
224201

225202

226-
def test_flow_v1_v2_get_output_match(flow_v1, flow_v2, with_v2_server_config):
203+
@pytest.mark.test_server()
204+
def test_flow_v1_v2_get_output_match(flow_v1, flow_v2):
227205
flow_from_v1 = flow_v1.get(flow_id=1)
228-
229-
v2_payload = {
230-
"id": flow_from_v1.flow_id,
231-
"uploader": flow_from_v1.uploader,
232-
"name": flow_from_v1.name,
233-
"version": flow_from_v1.version,
234-
"external_version": flow_from_v1.external_version,
235-
"description": flow_from_v1.description,
236-
"upload_date": "2020-01-01T00:00:00",
237-
"language": flow_from_v1.language,
238-
"dependencies": flow_from_v1.dependencies,
239-
"class_name": flow_from_v1.class_name,
240-
"custom_name": flow_from_v1.custom_name,
241-
}
242-
243-
with patch.object(Session, "request") as mock_request:
244-
mock_request.return_value = Response()
245-
mock_request.return_value.status_code = 200
246-
mock_request.return_value._content = b"{}"
247-
mock_request.return_value.json = lambda: v2_payload
248-
flow_from_v2 = flow_v2.get(flow_id=1)
206+
flow_from_v2 = flow_v2.get(flow_id=1)
249207

250208
assert flow_from_v1.flow_id == flow_from_v2.flow_id
251209
assert flow_from_v1.name == flow_from_v2.name

tests/test_flows/test_flow.py

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -106,35 +106,21 @@ def test_get_structure(self):
106106

107107
@pytest.mark.test_server()
108108
def test_tagging(self):
109-
flow_id = openml.flows.flow_exists("weka.ZeroR", "Weka_3.9.0_12024")
110-
if not flow_id:
111-
pytest.skip("No stable flow available for tagging test on configured test server")
109+
flows = openml.flows.list_flows(size=1)
110+
flow_id = flows["id"].iloc[0]
112111
flow = openml.flows.get_flow(flow_id)
113112
# tags can be at most 64 alphanumeric (+ underscore) chars
114-
unique_indicator = uuid.uuid4().hex[:16]
113+
unique_indicator = str(time.time()).replace(".", "")
115114
tag = f"test_tag_TestFlow_{unique_indicator}"
116115
flows = openml.flows.list_flows(tag=tag)
117-
if len(flows) != 0:
118-
pytest.skip("Tag filter returned stale/non-empty results for a unique tag")
119-
try:
120-
flow.push_tag(tag)
121-
except openml.exceptions.OpenMLServerException as e:
122-
if e.code == 105 and "document missing" in e.message.lower():
123-
pytest.skip("Test server index is inconsistent for flow tagging")
124-
raise
116+
assert len(flows) == 0
117+
flow.push_tag(tag)
125118
flows = openml.flows.list_flows(tag=tag)
126-
if len(flows) == 0:
127-
pytest.skip("Tag index not updated yet on test server")
119+
assert len(flows) == 1
128120
assert flow_id in flows["id"].values
129-
try:
130-
flow.remove_tag(tag)
131-
except openml.exceptions.OpenMLServerException as e:
132-
if e.code == 105 and "document missing" in e.message.lower():
133-
pytest.skip("Test server index is inconsistent for flow untagging")
134-
raise
121+
flow.remove_tag(tag)
135122
flows = openml.flows.list_flows(tag=tag)
136-
if len(flows) != 0 and flow_id in flows["id"].values:
137-
pytest.skip("Tag removal not reflected yet by test server index")
123+
assert len(flows) == 0
138124

139125
@pytest.mark.test_server()
140126
def test_from_xml_to_xml(self):
@@ -321,19 +307,21 @@ def test_semi_legal_flow(self):
321307
def test_publish_error(self, mock_request, flow_exists_mock, get_flow_mock):
322308
model = sklearn.ensemble.RandomForestClassifier()
323309
flow = self.extension.model_to_flow(model)
324-
310+
325311
# Create mock response directly
326312
response = requests.Response()
327313
response.status_code = 200
328314
response._content = (
329-
"<oml:upload_flow>\n" " <oml:id>1</oml:id>\n" "</oml:upload_flow>"
315+
'<oml:upload_flow xmlns:oml="http://openml.org/openml">\n'
316+
" <oml:id>1</oml:id>\n"
317+
"</oml:upload_flow>"
330318
).encode()
331319
mock_request.return_value = response
332320
flow_exists_mock.return_value = False # Flow doesn't exist yet, so try to publish
333321
get_flow_mock.return_value = flow
334322

335323
flow.publish()
336-
# Not collecting flow_id for deletion since this is a test for failed upload
324+
# The first publish succeeds, so we don't collect flow_id for deletion since this is a mocked test.
337325

338326
assert mock_request.call_count == 1
339327
assert get_flow_mock.call_count == 1

0 commit comments

Comments
 (0)