@@ -38,11 +38,36 @@ def test_ocr_payload_invalid_page_range() -> None:
3838 OcrPdfPayload .model_validate ({"files" : [file_repr ], "pages" : ["5-2" ]})
3939
4040
41+ def test_ocr_payload_languages () -> None :
42+ file_repr = make_pdf_file (PdfRestFileID .generate (1 ))
43+ payload = OcrPdfPayload .model_validate (
44+ {"files" : [file_repr ], "languages" : ["English" , "German" ]}
45+ )
46+ assert payload .languages == ["English" , "German" ]
47+ assert (
48+ payload .model_dump (
49+ mode = "json" , by_alias = True , exclude_none = True , exclude_unset = True
50+ )["languages" ]
51+ == "English,German"
52+ )
53+
54+
55+ def test_ocr_payload_invalid_language () -> None :
56+ file_repr = make_pdf_file (PdfRestFileID .generate (1 ))
57+ with pytest .raises (ValidationError , match = "ChineseSimplified" ):
58+ OcrPdfPayload .model_validate ({"files" : [file_repr ], "languages" : ["Klingon" ]})
59+
60+
4161def test_ocr_pdf_success (monkeypatch : pytest .MonkeyPatch ) -> None :
4262 monkeypatch .delenv ("PDFREST_API_KEY" , raising = False )
4363 input_file = make_pdf_file (PdfRestFileID .generate (1 ))
4464 payload_dump = OcrPdfPayload .model_validate (
45- {"files" : [input_file ], "pages" : ["1-3" ], "output" : "ocr" }
65+ {
66+ "files" : [input_file ],
67+ "pages" : ["1-3" ],
68+ "output" : "ocr" ,
69+ "languages" : ["English" ],
70+ }
4671 ).model_dump (mode = "json" , by_alias = True , exclude_none = True , exclude_unset = True )
4772 output_id = str (PdfRestFileID .generate ())
4873
@@ -91,9 +116,9 @@ def test_ocr_pdf_request_customization(
91116) -> None :
92117 monkeypatch .delenv ("PDFREST_API_KEY" , raising = False )
93118 input_file = make_pdf_file (PdfRestFileID .generate (1 ))
94- payload_dump = OcrPdfPayload .model_validate ({ "files" : [ input_file ]}). model_dump (
95- mode = "json" , by_alias = True , exclude_none = True , exclude_unset = True
96- )
119+ payload_dump = OcrPdfPayload .model_validate (
120+ { "files" : [ input_file ], "languages" : [ "English" ]}
121+ ). model_dump ( mode = "json" , by_alias = True , exclude_none = True , exclude_unset = True )
97122 output_id = str (PdfRestFileID .generate ())
98123 captured_timeout : dict [str , float | dict [str , float ] | None ] = {}
99124
@@ -152,9 +177,9 @@ async def test_async_ocr_pdf_success(
152177) -> None :
153178 monkeypatch .delenv ("PDFREST_API_KEY" , raising = False )
154179 input_file = make_pdf_file (PdfRestFileID .generate (2 ))
155- payload_dump = OcrPdfPayload .model_validate ({ "files" : [ input_file ]}). model_dump (
156- mode = "json" , by_alias = True , exclude_none = True , exclude_unset = True
157- )
180+ payload_dump = OcrPdfPayload .model_validate (
181+ { "files" : [ input_file ], "languages" : [ "English" ]}
182+ ). model_dump ( mode = "json" , by_alias = True , exclude_none = True , exclude_unset = True )
158183 output_id = str (PdfRestFileID .generate ())
159184
160185 seen : dict [str , int ] = {"post" : 0 , "get" : 0 }
0 commit comments