@@ -24,37 +24,51 @@ See the :doc:`api-reference` for full usage details.
24
24
import uuid
25
25
26
26
from vws import VWS , CloudRecoService
27
+ from vws.reports import QueryResult
27
28
28
- server_access_key = " [server-access-key]"
29
- server_secret_key = " [server-secret-key]"
30
- client_access_key = " [client-access-key]"
31
- client_secret_key = " [client-secret-key]"
32
-
33
- vws_client = VWS(
34
- server_access_key = server_access_key,
35
- server_secret_key = server_secret_key,
36
- )
37
- cloud_reco_client = CloudRecoService(
38
- client_access_key = client_access_key,
39
- client_secret_key = client_secret_key,
40
- )
41
-
42
- name = " my_image_name_" + uuid.uuid4().hex
43
-
44
- image = pathlib.Path(" high_quality_image.jpg" )
45
- with image.open(mode = " rb" ) as my_image_file:
46
- target_id = vws_client.add_target(
47
- name = name,
48
- width = 1 ,
49
- image = my_image_file,
50
- active_flag = True ,
51
- application_metadata = None ,
29
+
30
+ def add_target () -> str :
31
+ """ Add a target to VWS and return its ID."""
32
+ server_access_key = " [server-access-key]"
33
+ server_secret_key = " [server-secret-key]"
34
+ vws_client = VWS(
35
+ server_access_key = server_access_key,
36
+ server_secret_key = server_secret_key,
37
+ )
38
+ name = " my_image_name_" + uuid.uuid4().hex
39
+
40
+ image = pathlib.Path(" high_quality_image.jpg" )
41
+ with image.open(mode = " rb" ) as my_image_file:
42
+ target_id = vws_client.add_target(
43
+ name = name,
44
+ width = 1 ,
45
+ image = my_image_file,
46
+ active_flag = True ,
47
+ application_metadata = None ,
48
+ )
49
+ vws_client.wait_for_target_processed(target_id = target_id)
50
+
51
+ return target_id
52
+
53
+
54
+ def get_matching_targets () -> list[QueryResult]:
55
+ """ Query VWS for matching targets."""
56
+ client_access_key = " [client-access-key]"
57
+ client_secret_key = " [client-secret-key]"
58
+
59
+ cloud_reco_client = CloudRecoService(
60
+ client_access_key = client_access_key,
61
+ client_secret_key = client_secret_key,
52
62
)
53
- vws_client.wait_for_target_processed(target_id = target_id)
54
- matching_targets = cloud_reco_client.query(image = my_image_file)
55
63
56
- assert matching_targets[0 ].target_id == target_id
57
- a = 1
64
+ image = pathlib.Path(" high_quality_image.jpg" )
65
+ with image.open(mode = " rb" ) as my_image_file:
66
+ return cloud_reco_client.query(image = my_image_file)
67
+
68
+
69
+ TARGET_ID = add_target()
70
+ MATCHING_TARGETS = get_matching_targets()
71
+ assert MATCHING_TARGETS [0 ].target_id == TARGET_ID
58
72
59
73
Testing
60
74
-------
@@ -78,27 +92,34 @@ To write unit tests for code which uses this library, without using your Vuforia
78
92
79
93
from vws import VWS , CloudRecoService
80
94
81
- with MockVWS() as mock:
82
- database = VuforiaDatabase()
83
- mock.add_database(database = database)
84
- vws_client = VWS(
85
- server_access_key = database.server_access_key,
86
- server_secret_key = database.server_secret_key,
87
- )
88
- cloud_reco_client = CloudRecoService(
89
- client_access_key = database.client_access_key,
90
- client_secret_key = database.client_secret_key,
91
- )
92
95
93
- image = pathlib.Path( " high_quality_image.jpg " )
94
- with image.open( mode = " rb " ) as my_image_file:
95
- target_id = vws_client.add_target(
96
- name = " example_image_name " ,
97
- width = 1 ,
98
- image = my_image_file,
99
- application_metadata = None ,
100
- active_flag = True ,
96
+ def test_add_target () -> None :
97
+ """ Test adding a target to VWS. """
98
+ with MockVWS() as mock:
99
+ database = VuforiaDatabase()
100
+ mock.add_database( database = database)
101
+ vws_client = VWS(
102
+ server_access_key = database.server_access_key ,
103
+ server_secret_key = database.server_secret_key ,
101
104
)
105
+ cloud_reco_client = CloudRecoService(
106
+ client_access_key = database.client_access_key,
107
+ client_secret_key = database.client_secret_key,
108
+ )
109
+
110
+ image = pathlib.Path(" high_quality_image.jpg" )
111
+ with image.open(mode = " rb" ) as my_image_file:
112
+ target_id = vws_client.add_target(
113
+ name = " example_image_name" ,
114
+ width = 1 ,
115
+ image = my_image_file,
116
+ application_metadata = None ,
117
+ active_flag = True ,
118
+ )
119
+
120
+ vws_client.wait_for_target_processed(target_id = target_id)
121
+ matching_targets = cloud_reco_client.query(image = my_image_file)
122
+ assert matching_targets[0 ].target_id == target_id
102
123
103
124
There are some differences between the mock and the real Vuforia.
104
125
See https://vws-python-mock.readthedocs.io/en/latest/differences-to-vws.html for details.
0 commit comments