@@ -24,37 +24,51 @@ See the :doc:`api-reference` for full usage details.
2424 import uuid
2525
2626 from vws import VWS , CloudRecoService
27+ from vws.reports import QueryResult
2728
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,
5262 )
53- vws_client.wait_for_target_processed(target_id = target_id)
54- matching_targets = cloud_reco_client.query(image = my_image_file)
5563
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
5872
5973 Testing
6074-------
@@ -78,27 +92,34 @@ To write unit tests for code which uses this library, without using your Vuforia
7892
7993 from vws import VWS , CloudRecoService
8094
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- )
9295
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 ,
101104 )
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
102123
103124 There are some differences between the mock and the real Vuforia.
104125See https://vws-python-mock.readthedocs.io/en/latest/differences-to-vws.html for details.
0 commit comments