Skip to content

Commit 787e371

Browse files
Merge pull request #1280 from VWS-Python/target-status-return
Change the return type of ``vws_client.get_target_record`` to match w…
2 parents e5274f0 + 25de145 commit 787e371

File tree

4 files changed

+34
-9
lines changed

4 files changed

+34
-9
lines changed

CHANGELOG.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Changelog
66
Next
77
----
88

9+
* Change the return type of ``vws_client.get_target_record`` to match what is returned by the web API.
10+
911
2020.06.19.0
1012
------------
1113

src/vws/reports.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class TargetSummaryReport:
6666
@dataclass
6767
class TargetRecord:
6868
"""
69-
A target summary record.
69+
A target record.
7070
7171
See
7272
https://library.vuforia.com/articles/Solution/How-To-Use-the-Vuforia-Web-Services-API#How-To-Retrieve-a-Target-Record.
@@ -102,3 +102,16 @@ class QueryResult:
102102

103103
target_id: str
104104
target_data: Optional[TargetData]
105+
106+
107+
@dataclass
108+
class TargetStatusAndRecord:
109+
"""
110+
The target status and a target record.
111+
112+
See
113+
https://library.vuforia.com/articles/Solution/How-To-Use-the-Vuforia-Web-Services-API#How-To-Retrieve-a-Target-Record.
114+
"""
115+
116+
status: TargetStatuses
117+
target_record: TargetRecord

src/vws/vws.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from vws.reports import (
2222
DatabaseSummaryReport,
2323
TargetRecord,
24+
TargetStatusAndRecord,
2425
TargetStatuses,
2526
TargetSummaryReport,
2627
)
@@ -215,7 +216,7 @@ def add_target(
215216

216217
return str(response.json()['target_id'])
217218

218-
def get_target_record(self, target_id: str) -> TargetRecord:
219+
def get_target_record(self, target_id: str) -> TargetStatusAndRecord:
219220
"""
220221
Get a given target's target record from the Target Management System.
221222
@@ -245,7 +246,9 @@ def get_target_record(self, target_id: str) -> TargetRecord:
245246
expected_result_code='Success',
246247
)
247248

248-
target_record_dict = dict(response.json()['target_record'])
249+
result_data = response.json()
250+
status = TargetStatuses(result_data['status'])
251+
target_record_dict = dict(result_data['target_record'])
249252
target_record = TargetRecord(
250253
target_id=target_record_dict['target_id'],
251254
active_flag=target_record_dict['active_flag'],
@@ -254,7 +257,11 @@ def get_target_record(self, target_id: str) -> TargetRecord:
254257
tracking_rating=target_record_dict['tracking_rating'],
255258
reco_rating=target_record_dict['reco_rating'],
256259
)
257-
return target_record
260+
target_status_and_record = TargetStatusAndRecord(
261+
status=status,
262+
target_record=target_record,
263+
)
264+
return target_status_and_record
258265

259266
def _wait_for_target_processed(
260267
self,

tests/test_vws.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ def test_add_target(
5757
application_metadata=encoded_metadata,
5858
active_flag=active_flag,
5959
)
60-
target_record = vws_client.get_target_record(target_id=target_id)
60+
target_record = vws_client.get_target_record(
61+
target_id=target_id,
62+
).target_record
6163
assert target_record.name == name
6264
assert target_record.width == width
6365
assert target_record.active_flag is active_flag
@@ -277,7 +279,8 @@ def test_get_target_record(
277279
reco_rating='',
278280
)
279281

280-
assert result == expected_target_record
282+
assert result.target_record == expected_target_record
283+
assert result.status == TargetStatuses.PROCESSING
281284

282285

283286
class TestWaitForTargetProcessed:
@@ -534,9 +537,9 @@ def test_update_target(
534537
)
535538

536539
target_details = vws_client.get_target_record(target_id=target_id)
537-
assert target_details.name == new_name
538-
assert target_details.width == new_width
539-
assert not target_details.active_flag
540+
assert target_details.target_record.name == new_name
541+
assert target_details.target_record.width == new_width
542+
assert not target_details.target_record.active_flag
540543

541544
def test_no_fields_given(
542545
self,

0 commit comments

Comments
 (0)