@@ -81,6 +81,20 @@ def decorator(method: Callable[..., str]) -> Callable[..., str]:
8181 return decorator
8282
8383
84+ def _body_bytes (request : Request ) -> bytes :
85+ """
86+ Return the body of a request as bytes.
87+ """
88+ if request .body is None :
89+ return b""
90+
91+ if isinstance (request .body , str ):
92+ return request .body .encode (encoding = "utf-8" )
93+
94+ assert isinstance (request .body , bytes )
95+ return request .body
96+
97+
8498class MockVuforiaWebServicesAPI :
8599 """
86100 A fake implementation of the Vuforia Web Services API.
@@ -129,7 +143,7 @@ def add_target(self, request: Request, context: Context) -> str:
129143 try :
130144 run_services_validators (
131145 request_headers = request .headers ,
132- request_body = request . body ,
146+ request_body = _body_bytes ( request = request ) ,
133147 request_method = request .method ,
134148 request_path = request .path ,
135149 databases = self ._target_manager .databases ,
@@ -141,7 +155,7 @@ def add_target(self, request: Request, context: Context) -> str:
141155
142156 database = get_database_matching_server_keys (
143157 request_headers = request .headers ,
144- request_body = request . body ,
158+ request_body = _body_bytes ( request = request ) ,
145159 request_method = request .method ,
146160 request_path = request .path ,
147161 databases = self ._target_manager .databases ,
@@ -206,7 +220,7 @@ def delete_target(self, request: Request, context: Context) -> str:
206220 try :
207221 run_services_validators (
208222 request_headers = request .headers ,
209- request_body = request . body ,
223+ request_body = _body_bytes ( request = request ) ,
210224 request_method = request .method ,
211225 request_path = request .path ,
212226 databases = self ._target_manager .databases ,
@@ -219,7 +233,7 @@ def delete_target(self, request: Request, context: Context) -> str:
219233 body : dict [str , str ] = {}
220234 database = get_database_matching_server_keys (
221235 request_headers = request .headers ,
222- request_body = request . body ,
236+ request_body = _body_bytes ( request = request ) ,
223237 request_method = request .method ,
224238 request_path = request .path ,
225239 databases = self ._target_manager .databases ,
@@ -273,7 +287,7 @@ def database_summary(self, request: Request, context: Context) -> str:
273287 try :
274288 run_services_validators (
275289 request_headers = request .headers ,
276- request_body = request . body ,
290+ request_body = _body_bytes ( request = request ) ,
277291 request_method = request .method ,
278292 request_path = request .path ,
279293 databases = self ._target_manager .databases ,
@@ -287,7 +301,7 @@ def database_summary(self, request: Request, context: Context) -> str:
287301
288302 database = get_database_matching_server_keys (
289303 request_headers = request .headers ,
290- request_body = request . body ,
304+ request_body = _body_bytes ( request = request ) ,
291305 request_method = request .method ,
292306 request_path = request .path ,
293307 databases = self ._target_manager .databases ,
@@ -339,7 +353,7 @@ def target_list(self, request: Request, context: Context) -> str:
339353 try :
340354 run_services_validators (
341355 request_headers = request .headers ,
342- request_body = request . body ,
356+ request_body = _body_bytes ( request = request ) ,
343357 request_method = request .method ,
344358 request_path = request .path ,
345359 databases = self ._target_manager .databases ,
@@ -351,7 +365,7 @@ def target_list(self, request: Request, context: Context) -> str:
351365
352366 database = get_database_matching_server_keys (
353367 request_headers = request .headers ,
354- request_body = request . body ,
368+ request_body = _body_bytes ( request = request ) ,
355369 request_method = request .method ,
356370 request_path = request .path ,
357371 databases = self ._target_manager .databases ,
@@ -399,7 +413,7 @@ def get_target(self, request: Request, context: Context) -> str:
399413 try :
400414 run_services_validators (
401415 request_headers = request .headers ,
402- request_body = request . body ,
416+ request_body = _body_bytes ( request = request ) ,
403417 request_method = request .method ,
404418 request_path = request .path ,
405419 databases = self ._target_manager .databases ,
@@ -411,7 +425,7 @@ def get_target(self, request: Request, context: Context) -> str:
411425
412426 database = get_database_matching_server_keys (
413427 request_headers = request .headers ,
414- request_body = request . body ,
428+ request_body = _body_bytes ( request = request ) ,
415429 request_method = request .method ,
416430 request_path = request .path ,
417431 databases = self ._target_manager .databases ,
@@ -467,7 +481,7 @@ def get_duplicates(self, request: Request, context: Context) -> str:
467481 try :
468482 run_services_validators (
469483 request_headers = request .headers ,
470- request_body = request . body ,
484+ request_body = _body_bytes ( request = request ) ,
471485 request_method = request .method ,
472486 request_path = request .path ,
473487 databases = self ._target_manager .databases ,
@@ -479,7 +493,7 @@ def get_duplicates(self, request: Request, context: Context) -> str:
479493
480494 database = get_database_matching_server_keys (
481495 request_headers = request .headers ,
482- request_body = request . body ,
496+ request_body = _body_bytes ( request = request ) ,
483497 request_method = request .method ,
484498 request_path = request .path ,
485499 databases = self ._target_manager .databases ,
@@ -541,7 +555,7 @@ def update_target(self, request: Request, context: Context) -> str:
541555 try :
542556 run_services_validators (
543557 request_headers = request .headers ,
544- request_body = request . body ,
558+ request_body = _body_bytes ( request = request ) ,
545559 request_method = request .method ,
546560 request_path = request .path ,
547561 databases = self ._target_manager .databases ,
@@ -553,7 +567,7 @@ def update_target(self, request: Request, context: Context) -> str:
553567
554568 database = get_database_matching_server_keys (
555569 request_headers = request .headers ,
556- request_body = request . body ,
570+ request_body = _body_bytes ( request = request ) ,
557571 request_method = request .method ,
558572 request_path = request .path ,
559573 databases = self ._target_manager .databases ,
@@ -650,7 +664,7 @@ def target_summary(self, request: Request, context: Context) -> str:
650664 try :
651665 run_services_validators (
652666 request_headers = request .headers ,
653- request_body = request . body ,
667+ request_body = _body_bytes ( request = request ) ,
654668 request_method = request .method ,
655669 request_path = request .path ,
656670 databases = self ._target_manager .databases ,
@@ -662,7 +676,7 @@ def target_summary(self, request: Request, context: Context) -> str:
662676
663677 database = get_database_matching_server_keys (
664678 request_headers = request .headers ,
665- request_body = request . body ,
679+ request_body = _body_bytes ( request = request ) ,
666680 request_method = request .method ,
667681 request_path = request .path ,
668682 databases = self ._target_manager .databases ,
0 commit comments