@@ -93,6 +93,27 @@ def test_live_pdf_info_queries(
9393 _assert_expected_value (query_name , value )
9494
9595
96+ @pytest .mark .asyncio
97+ @pytest .mark .parametrize ("query_name" , ALLOWED_QUERIES , ids = list (ALLOWED_QUERIES ))
98+ async def test_live_pdf_info_async_queries (
99+ pdfrest_api_key : str ,
100+ pdfrest_live_base_url : str ,
101+ uploaded_pdf : PdfRestFile ,
102+ query_name : PdfInfoQuery ,
103+ ) -> None :
104+ async with AsyncPdfRestClient (
105+ api_key = pdfrest_api_key , base_url = pdfrest_live_base_url
106+ ) as client :
107+ response = await client .query_pdf_info (uploaded_pdf , queries = query_name )
108+
109+ assert isinstance (response , PdfRestInfoResponse )
110+ assert str (response .input_id ) == str (uploaded_pdf .id )
111+ assert response .all_queries_processed is True
112+
113+ value = getattr (response , query_name )
114+ _assert_expected_value (query_name , value )
115+
116+
96117@pytest .mark .parametrize (
97118 "invalid_query" ,
98119 [
@@ -120,6 +141,32 @@ def test_live_pdf_info_invalid_query(
120141 )
121142
122143
144+ @pytest .mark .asyncio
145+ @pytest .mark .parametrize (
146+ "invalid_query" ,
147+ [
148+ pytest .param ("invalid_query" , id = "invalid-query" ),
149+ pytest .param ("tagged,!!invalid!!" , id = "mixed-invalid" ),
150+ pytest .param ("🚫" , id = "emoji" ),
151+ ],
152+ )
153+ async def test_live_pdf_info_async_invalid_query (
154+ pdfrest_api_key : str ,
155+ pdfrest_live_base_url : str ,
156+ uploaded_pdf : PdfRestFile ,
157+ invalid_query : str ,
158+ ) -> None :
159+ async with AsyncPdfRestClient (
160+ api_key = pdfrest_api_key , base_url = pdfrest_live_base_url
161+ ) as client :
162+ with pytest .raises (PdfRestApiError , match = r"(?i)quer" ):
163+ await client .query_pdf_info (
164+ uploaded_pdf ,
165+ queries = "tagged" ,
166+ extra_body = {"queries" : invalid_query },
167+ )
168+
169+
123170@pytest .mark .parametrize (
124171 "query_group" ,
125172 [
@@ -145,6 +192,32 @@ def test_live_pdf_info_multiple_queries(
145192 _assert_expected_value (item , getattr (response , item ))
146193
147194
195+ @pytest .mark .asyncio
196+ @pytest .mark .parametrize (
197+ "query_group" ,
198+ [
199+ pytest .param (("tagged" , "filename" ), id = "two-values" ),
200+ pytest .param (("page_count" , "file_size" , "pdf_version" ), id = "three-values" ),
201+ ],
202+ )
203+ async def test_live_pdf_info_async_multiple_queries (
204+ pdfrest_api_key : str ,
205+ pdfrest_live_base_url : str ,
206+ uploaded_pdf : PdfRestFile ,
207+ query_group : tuple [PdfInfoQuery , ...],
208+ ) -> None :
209+ async with AsyncPdfRestClient (
210+ api_key = pdfrest_api_key , base_url = pdfrest_live_base_url
211+ ) as client :
212+ response = await client .query_pdf_info (uploaded_pdf , queries = query_group )
213+
214+ assert isinstance (response , PdfRestInfoResponse )
215+ assert str (response .input_id ) == str (uploaded_pdf .id )
216+ assert response .all_queries_processed is True
217+ for item in query_group :
218+ _assert_expected_value (item , getattr (response , item ))
219+
220+
148221def test_live_pdf_info_all_queries (
149222 pdfrest_api_key : str ,
150223 pdfrest_live_base_url : str ,
0 commit comments