[ "tests/test_app.py::test_begin_run_disables_button_and_shows_first_unparsed_page", "tests/test_app.py::test_begin_upload_shows_persistent_preparation_status", "tests/test_app.py::test_clear_run_progress_restores_controls", "tests/test_app.py::test_request_key_falls_back_to_real_ip_then_client", "tests/test_app.py::test_request_key_prefers_forwarded_client_address", "tests/test_document_processing.py::test_caps_pdf_at_ten_pages", "tests/test_document_processing.py::test_deletes_source_after_preparation", "tests/test_document_processing.py::test_detects_image_content_instead_of_extension", "tests/test_document_processing.py::test_reencodes_and_downsizes_image", "tests/test_document_processing.py::test_rejects_invalid_and_oversized_documents", "tests/test_document_processing.py::test_rejects_non_temporary_path_when_enforced", "tests/test_parser_client.py::test_build_payload_uses_image_only_contract", "tests/test_parser_client.py::test_parse_page_calls_staging_and_shapes_output", "tests/test_parser_client.py::test_reads_both_supported_response_shapes", "tests/test_parser_client.py::test_rejects_non_retryable_response_without_leaking_body", "tests/test_parser_client.py::test_retries_retryable_responses", "tests/test_parser_client.py::test_retries_transport_errors_then_returns_safe_error", "tests/test_parser_output.py::test_extracts_and_normalizes_bounding_boxes", "tests/test_parser_output.py::test_rendered_text_keeps_a_visible_marker_for_html_tables", "tests/test_parser_output.py::test_sanitizes_rendered_markdown", "tests/test_parser_output.py::test_sanitizes_tables", "tests/test_parser_output.py::test_shapes_empty_output", "tests/test_parser_output.py::test_table_only_output_has_nonempty_text_html", "tests/test_rate_limit.py::test_limits_each_key_within_window", "tests/test_rate_limit.py::test_resets_after_window", "tests/test_ui_helpers.py::test_download_contains_structured_results", "tests/test_ui_helpers.py::test_idle_status_does_not_render_a_redundant_message", "tests/test_ui_helpers.py::test_output_progress_describes_the_active_page", "tests/test_ui_helpers.py::test_page_limit_warning_is_persistent_html", "tests/test_ui_helpers.py::test_progress_status_is_visible_and_escapes_its_message", "tests/test_ui_helpers.py::test_single_page_settings_use_a_single_page_label", "tests/test_ui_helpers.py::test_viewer_embeds_page_and_escapes_labels", "tests/test_ui_helpers.py::test_zoom_uses_an_intuitive_control_scale" ]