Skip to content

Commit 5b8e7af

Browse files
Merge pull request #789 from adamtheturtle/simple-get-target
Simple get_target without error handling
2 parents 1d11ff1 + 6290eee commit 5b8e7af

File tree

2 files changed

+69
-1
lines changed

2 files changed

+69
-1
lines changed

src/vws/vws.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import base64
66
import io
77
import json
8-
from typing import Union
8+
from typing import Any, Dict, Union
99
from urllib.parse import urljoin
1010

1111
import requests
@@ -133,3 +133,24 @@ def add_target(
133133
)
134134

135135
return str(response.json()['target_id'])
136+
137+
def get_target(self, target_id: str) -> Dict[str, Any]:
138+
"""
139+
Get details of a given target.
140+
141+
Args:
142+
target_id: The ID of the target to get details of.
143+
144+
Returns:
145+
Response details of a target from Vuforia.
146+
"""
147+
response = _target_api_request(
148+
server_access_key=self._server_access_key,
149+
server_secret_key=self._server_secret_key,
150+
method='GET',
151+
content=b'',
152+
request_path=f'/targets/{target_id}',
153+
base_vws_url=self._base_vws_url,
154+
)
155+
156+
return dict(response.json())

tests/test_get_target.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
"""
2+
Tests for helper function for getting details of a target from a Vuforia
3+
database.
4+
"""
5+
6+
import io
7+
8+
from vws import VWS
9+
10+
11+
class TestGetTarget:
12+
"""
13+
Test for getting details of a target.
14+
"""
15+
16+
def test_get_target(
17+
self,
18+
client: VWS,
19+
high_quality_image: io.BytesIO,
20+
) -> None:
21+
"""
22+
Details of a target are returned by ``get_target``.
23+
"""
24+
target_id = client.add_target(
25+
name='x',
26+
width=1,
27+
image=high_quality_image,
28+
)
29+
30+
result = client.get_target(target_id=target_id)
31+
expected_keys = {
32+
'result_code',
33+
'transaction_id',
34+
'target_record',
35+
'status',
36+
}
37+
assert result.keys() == expected_keys
38+
39+
expected_keys = {
40+
'target_id',
41+
'active_flag',
42+
'name',
43+
'width',
44+
'tracking_rating',
45+
'reco_rating',
46+
}
47+
assert result['target_record'].keys() == expected_keys

0 commit comments

Comments
 (0)