Skip to content

Commit d4a9999

Browse files
Resolve disparities in Query PDF live tests
Assisted-by: Codex
1 parent ff5a496 commit d4a9999

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

tests/live/test_live_pdf_info.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
148221
def test_live_pdf_info_all_queries(
149222
pdfrest_api_key: str,
150223
pdfrest_live_base_url: str,

0 commit comments

Comments
 (0)