Skip to content

Commit 7493fcd

Browse files
committed
fix version tests
1 parent 6953577 commit 7493fcd

File tree

1 file changed

+26
-48
lines changed

1 file changed

+26
-48
lines changed

tests/test_version.py

Lines changed: 26 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,20 @@
55
import requests
66
import responses
77

8+
from roboflow.adapters import rfapi
89
from roboflow.core.version import Version, unwrap_version_id
910
from tests.helpers import get_version
1011

1112

13+
def mock_generating_url_response(generating_url):
14+
"""Helper function to mock the generating URL response that's repeated across tests."""
15+
responses.add(
16+
responses.GET,
17+
generating_url,
18+
json={"version": {"generating": False, "progress": 1.0, "images": 10}},
19+
)
20+
21+
1222
class TestDownload(unittest.TestCase):
1323
def setUp(self):
1424
super().setUp()
@@ -24,24 +34,15 @@ def setUp(self):
2434
@responses.activate
2535
def test_download_raises_exception_on_bad_request(self):
2636
responses.add(responses.GET, self.api_url, status=404, json={"error": "Broken"})
27-
responses.add(
28-
responses.GET,
29-
self.generating_url,
30-
json={"version": {"generating": False, "progress": 1.0}},
31-
)
32-
33-
with self.assertRaises(RuntimeError):
37+
mock_generating_url_response(self.generating_url)
38+
with self.assertRaises(rfapi.RoboflowError):
3439
self.version.download("coco")
3540

3641
@responses.activate
3742
def test_download_raises_exception_on_api_failure(self):
3843
responses.add(responses.GET, self.api_url, status=500)
39-
responses.add(
40-
responses.GET,
41-
self.generating_url,
42-
json={"version": {"generating": False, "progress": 1.0}},
43-
)
44-
with self.assertRaises(requests.exceptions.HTTPError):
44+
mock_generating_url_response(self.generating_url)
45+
with self.assertRaises(rfapi.RoboflowError):
4546
self.version.download("coco")
4647

4748
@responses.activate
@@ -50,11 +51,7 @@ def test_download_raises_exception_on_api_failure(self):
5051
@patch.object(Version, "_Version__reformat_yaml")
5152
def test_download_returns_dataset(self, *_):
5253
responses.add(responses.GET, self.api_url, json={"export": {"link": None}})
53-
responses.add(
54-
responses.GET,
55-
self.generating_url,
56-
json={"version": {"generating": False, "progress": 1.0}},
57-
)
54+
mock_generating_url_response(self.generating_url)
5855
dataset = self.version.download("coco", location="/my-spot")
5956
self.assertEqual(dataset.name, self.version.name)
6057
self.assertEqual(dataset.version, self.version.version)
@@ -76,12 +73,13 @@ def setUp(self):
7673

7774
@responses.activate
7875
def test_export_returns_true_on_api_success(self):
79-
responses.add(responses.GET, self.api_url, status=200)
8076
responses.add(
8177
responses.GET,
82-
self.generating_url,
83-
json={"version": {"generating": False, "progress": 1.0}},
78+
self.api_url,
79+
status=200,
80+
json={"export": {"link": "https://api.roboflow.com/test-workspace/test-project/4/test-format"}},
8481
)
82+
mock_generating_url_response(self.generating_url)
8583
export = self.version.export("test-format")
8684
request = responses.calls[0].request
8785

@@ -92,23 +90,15 @@ def test_export_returns_true_on_api_success(self):
9290
@responses.activate
9391
def test_export_raises_error_on_bad_request(self):
9492
responses.add(responses.GET, self.api_url, status=400, json={"error": "BROKEN!!"})
95-
responses.add(
96-
responses.GET,
97-
self.generating_url,
98-
json={"version": {"generating": False, "progress": 1.0}},
99-
)
100-
with self.assertRaises(RuntimeError):
93+
mock_generating_url_response(self.generating_url)
94+
with self.assertRaises(rfapi.RoboflowError):
10195
self.version.export("test-format")
10296

10397
@responses.activate
10498
def test_export_raises_error_on_api_failure(self):
10599
responses.add(responses.GET, self.api_url, status=500)
106-
responses.add(
107-
responses.GET,
108-
self.generating_url,
109-
json={"version": {"generating": False, "progress": 1.0}},
110-
)
111-
with self.assertRaises(requests.exceptions.HTTPError):
100+
mock_generating_url_response(self.generating_url)
101+
with self.assertRaises(rfapi.RoboflowError):
112102
self.version.export("test-format")
113103

114104

@@ -128,21 +118,13 @@ def setUp(self, *_):
128118

129119
@responses.activate
130120
def test_get_download_location_with_env_variable(self, *_):
131-
responses.add(
132-
responses.GET,
133-
self.generating_url,
134-
json={"version": {"generating": False, "progress": 1.0}},
135-
)
121+
mock_generating_url_response(self.generating_url)
136122
with patch.dict(os.environ, {"DATASET_DIRECTORY": "/my/exports"}, clear=True):
137123
self.assertEqual(self.get_download_location(), "/my/exports/Test-Dataset-3")
138124

139125
@responses.activate
140126
def test_get_download_location_without_env_variable(self, *_):
141-
responses.add(
142-
responses.GET,
143-
self.generating_url,
144-
json={"version": {"generating": False, "progress": 1.0}},
145-
)
127+
mock_generating_url_response(self.generating_url)
146128
self.assertEqual(self.get_download_location(), "Test-Dataset-3")
147129

148130

@@ -161,11 +143,7 @@ def setUp(self):
161143

162144
@responses.activate
163145
def test_get_download_url(self):
164-
responses.add(
165-
responses.GET,
166-
self.generating_url,
167-
json={"version": {"generating": False, "progress": 1.0}},
168-
)
146+
mock_generating_url_response(self.generating_url)
169147
url = self.get_download_url("yolo1337")
170148
self.assertEqual(url, "https://api.roboflow.com/test-workspace/test-project/3/yolo1337")
171149

0 commit comments

Comments
 (0)