@@ -39,6 +39,10 @@ def _serialize_text_object_for_request(
3939 text_object : dict [str , object ],
4040) -> dict [str , object ]:
4141 serialized = dict (text_object )
42+ for key in ("max_width" , "rotation" , "text_size" , "x" , "y" ):
43+ value = serialized .get (key )
44+ if isinstance (value , int ):
45+ serialized [key ] = float (value )
4246 rgb = serialized .get ("text_color_rgb" )
4347 if isinstance (rgb , (list , tuple )):
4448 serialized ["text_color_rgb" ] = "," .join (str (channel ) for channel in rgb )
@@ -108,13 +112,18 @@ def test_add_text_to_pdf_request_customization(
108112 pdf_file = make_pdf_file (PdfRestFileID .generate (1 ))
109113 output_id = str (PdfRestFileID .generate ())
110114 captured_timeout : dict [str , float | dict [str , float ] | None ] = {}
115+ overridden_text_object = make_text_object (page = 2 )
111116
112117 def handler (request : httpx .Request ) -> httpx .Response :
113118 if request .method == "POST" and request .url .path == "/pdf-with-added-text" :
114119 assert request .url .params ["trace" ] == "true"
115120 assert request .headers ["X-Debug" ] == "1"
116121 payload = json .loads (request .content .decode ("utf-8" ))
117122 assert payload ["rotation" ] == 15
123+ assert payload ["text_objects" ] == json .dumps (
124+ [_serialize_text_object_for_request (overridden_text_object )],
125+ separators = ("," , ":" ),
126+ )
118127 captured_timeout ["value" ] = request .extensions .get ("timeout" )
119128 return httpx .Response (
120129 200 ,
@@ -144,7 +153,13 @@ def handler(request: httpx.Request) -> httpx.Response:
144153 text_objects = [make_text_object (rotation = 15 )],
145154 extra_query = {"trace" : "true" },
146155 extra_headers = {"X-Debug" : "1" },
147- extra_body = {"rotation" : 15 },
156+ extra_body = {
157+ "rotation" : 15 ,
158+ "text_objects" : json .dumps (
159+ [_serialize_text_object_for_request (overridden_text_object )],
160+ separators = ("," , ":" ),
161+ ),
162+ },
148163 timeout = 0.25 ,
149164 )
150165
@@ -304,13 +319,18 @@ async def test_async_add_text_to_pdf_request_customization(
304319 pdf_file = make_pdf_file (PdfRestFileID .generate (1 ))
305320 output_id = str (PdfRestFileID .generate ())
306321 captured_timeout : dict [str , float | dict [str , float ] | None ] = {}
322+ overridden_text_object = make_text_object (page = 3 )
307323
308324 def handler (request : httpx .Request ) -> httpx .Response :
309325 if request .method == "POST" and request .url .path == "/pdf-with-added-text" :
310326 assert request .url .params ["trace" ] == "true"
311327 assert request .headers ["X-Test" ] == "async"
312328 payload = json .loads (request .content .decode ("utf-8" ))
313329 assert payload ["text_size" ] == 18
330+ assert payload ["text_objects" ] == json .dumps (
331+ [_serialize_text_object_for_request (overridden_text_object )],
332+ separators = ("," , ":" ),
333+ )
314334 captured_timeout ["value" ] = request .extensions .get ("timeout" )
315335 return httpx .Response (
316336 200 ,
@@ -340,7 +360,13 @@ def handler(request: httpx.Request) -> httpx.Response:
340360 text_objects = [make_text_object (text_size = 18 )],
341361 extra_query = {"trace" : "true" },
342362 extra_headers = {"X-Test" : "async" },
343- extra_body = {"text_size" : 18 },
363+ extra_body = {
364+ "text_size" : 18 ,
365+ "text_objects" : json .dumps (
366+ [_serialize_text_object_for_request (overridden_text_object )],
367+ separators = ("," , ":" ),
368+ ),
369+ },
344370 timeout = 1.0 ,
345371 )
346372
0 commit comments