Skip to content

Commit 9678186

Browse files
Merge pull request #897 from adamtheturtle/simpler-exception
Simpler exception
2 parents 2f4bbd9 + 7dfd683 commit 9678186

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

src/vws/exceptions.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,3 +201,9 @@ def response(self) -> Response:
201201
The response returned by Vuforia which included this error.
202202
"""
203203
return self._response
204+
205+
206+
class TargetProcessingTimeout(Exception):
207+
"""
208+
Exception raised when waiting for a target to be processed times out.
209+
"""

src/vws/vws.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
MetadataTooLarge,
2323
ProjectInactive,
2424
TargetNameExist,
25+
TargetProcessingTimeout,
2526
TargetStatusProcessing,
2627
UnknownTarget,
2728
)
@@ -337,7 +338,10 @@ def wait_for_target_processed(
337338
target in the database.
338339
"""
339340

340-
@timeout(seconds=timeout_seconds)
341+
@timeout(
342+
seconds=timeout_seconds,
343+
timeout_exception=TargetProcessingTimeout,
344+
)
341345
def decorated() -> None:
342346
self._wait_for_target_processed(
343347
target_id=target_id,

tests/test_vws.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@
66
from typing import Optional
77

88
import pytest
9-
import timeout_decorator
109
from mock_vws import MockVWS
1110
from mock_vws.database import VuforiaDatabase
1211

1312
from vws import VWS
14-
from vws.exceptions import UnknownTarget
13+
from vws.exceptions import TargetProcessingTimeout
1514

1615

1716
class TestAddTarget:
@@ -154,9 +153,9 @@ def test_delete_target(
154153
)
155154

156155
client.wait_for_target_processed(target_id=target_id)
156+
assert target_id in client.list_targets()
157157
client.delete_target(target_id=target_id)
158-
with pytest.raises(UnknownTarget):
159-
client.get_target_record(target_id=target_id)
158+
assert target_id not in client.list_targets()
160159

161160

162161
class TestGetTargetSummaryReport:
@@ -388,7 +387,7 @@ def test_custom_timeout(
388387

389388
report = client.get_target_summary_report(target_id=target_id)
390389
assert report['status'] == 'processing'
391-
with pytest.raises(timeout_decorator.TimeoutError):
390+
with pytest.raises(TargetProcessingTimeout):
392391
client.wait_for_target_processed(
393392
target_id=target_id,
394393
timeout_seconds=0.1,

0 commit comments

Comments
 (0)