Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Download tests/test_ui_helpers.py from CohereLabs/cohere-parse: direct link, hf CLI and curl.
- Browser
- Download file 5.12 kB
-
https://huggingface.co/spaces/CohereLabs/cohere-parse/resolve/main/tests/test_ui_helpers.py
- Command line
-
hf download hf://spaces/CohereLabs/cohere-parse/tests/test_ui_helpers.py
-
curl -L -o test_ui_helpers.py https://huggingface.co/spaces/CohereLabs/cohere-parse/resolve/main/tests/test_ui_helpers.py
5.12 kB
| from __future__ import annotations | |
| import base64 | |
| import json | |
| from ui_helpers import ( | |
| configuration_required_html, | |
| download_html, | |
| file_strip_html, | |
| header_html, | |
| output_progress_html, | |
| page_context_html, | |
| page_limit_html, | |
| progress_html, | |
| settings_html, | |
| status_html, | |
| viewer_html, | |
| zoom_width, | |
| ) | |
| def state() -> dict: | |
| return { | |
| "name": 'invoice "draft".pdf', | |
| "size": 100, | |
| "kind": "pdf", | |
| "total_pages": 12, | |
| "current_page": 0, | |
| "pages": [ | |
| { | |
| "number": 1, | |
| "png": b"image", | |
| "width": 100, | |
| "height": 200, | |
| } | |
| ], | |
| "results": [ | |
| { | |
| "raw_output": "hello", | |
| "output_chars": 5, | |
| "boxes": [ | |
| { | |
| "id": "1", | |
| "label": "<unsafe>", | |
| "bbox": [0.1, 0.2, 0.8, 0.9], | |
| } | |
| ], | |
| "tables_html": "", | |
| "text_html": "<p>hello</p>", | |
| "elapsed_ms": 12, | |
| "model": "parser", | |
| "usage": None, | |
| "request_id": None, | |
| } | |
| ], | |
| } | |
| def test_viewer_embeds_page_and_escapes_labels() -> None: | |
| rendered = viewer_html(state(), show_boxes=True, zoom=50) | |
| assert base64.b64encode(b"image").decode("ascii") in rendered | |
| assert "<unsafe>" in rendered | |
| assert "<unsafe>" not in rendered | |
| assert 'style="width:100.0%"' in rendered | |
| def test_zoom_uses_an_intuitive_control_scale() -> None: | |
| assert zoom_width(1) == 51 | |
| assert zoom_width(50) == 100 | |
| assert zoom_width(100) == 160 | |
| assert zoom_width(500) == 160 | |
| def test_settings_only_render_the_target_heading() -> None: | |
| single_page = state() | |
| single_page["total_pages"] = 1 | |
| rendered = settings_html(single_page) | |
| assert "Configuration" in rendered | |
| assert "Parse settings" in rendered | |
| assert "Pages" not in rendered | |
| def test_idle_status_does_not_render_a_redundant_message() -> None: | |
| idle = state() | |
| idle["results"] = [None] | |
| assert status_html(idle) == "" | |
| def test_progress_status_is_visible_and_escapes_its_message() -> None: | |
| rendered = progress_html("Preparing <document>", upload=True) | |
| assert 'role="status"' in rendered | |
| assert "status-spinner" in rendered | |
| assert "Preparing <document>" in rendered | |
| assert "Preparing <document>" not in rendered | |
| def test_output_progress_describes_the_active_page() -> None: | |
| rendered = output_progress_html(2, 3) | |
| assert 'role="status"' in rendered | |
| assert "Parsing document" in rendered | |
| assert "Processing page 2 / 3" in rendered | |
| def test_header_uses_parse_brand_and_requested_docs_url() -> None: | |
| rendered = header_html() | |
| assert "assets/parse-logo.svg" in rendered | |
| assert "assets/up_right_arrow.svg" in rendered | |
| assert 'href="https://docs.cohere.com/docs/parse"' in rendered | |
| assert "assets/cohere-logo.svg" not in rendered | |
| def test_configuration_message_names_the_selected_environment_key() -> None: | |
| rendered = configuration_required_html("COHERE_API_KEY") | |
| assert "COHERE_API_KEY" in rendered | |
| assert "Space settings" in rendered | |
| def test_configuration_message_rejects_an_invalid_environment() -> None: | |
| rendered = configuration_required_html() | |
| assert "COHERE_ENV" in rendered | |
| assert "staging or production" in rendered | |
| def test_file_strip_uses_document_icon_and_metric_badges() -> None: | |
| rendered = file_strip_html(state()) | |
| assert "assets/filetype_doc.svg" in rendered | |
| assert rendered.count('class="metric-badge"') == 3 | |
| assert "1/1 PARSED" in rendered | |
| def test_page_context_compacts_remaining_pages() -> None: | |
| document = state() | |
| document["pages"] = document["pages"] * 5 | |
| document["results"] = document["results"] * 5 | |
| assert page_context_html(document) == "<span>2</span><span>…</span><span>5</span>" | |
| def test_page_limit_warning_is_persistent_html() -> None: | |
| warning = page_limit_html(state()) | |
| assert "Only the first 1 pages will be processed" in warning | |
| assert "11 pages will" in warning | |
| def test_download_contains_structured_results() -> None: | |
| rendered = download_html(state()) | |
| encoded = rendered.split("base64,", 1)[1].split('"', 1)[0] | |
| payload = json.loads(base64.b64decode(encoded)) | |
| assert payload["document"]["total_pages"] == 12 | |
| assert payload["pages"][0]["text"] == "hello" | |
| def test_download_preserves_parse_text_and_structured_response() -> None: | |
| document = state() | |
| document["results"][0]["text_output"] = "Parsed text" | |
| document["results"][0]["response"] = { | |
| "id": "parse-123", | |
| "pages": [{"index": 0, "type": "blocks", "blocks": []}], | |
| } | |
| rendered = download_html(document) | |
| encoded = rendered.split("base64,", 1)[1].split('"', 1)[0] | |
| payload = json.loads(base64.b64decode(encoded)) | |
| assert payload["pages"][0]["text"] == "Parsed text" | |
| assert payload["pages"][0]["response"]["id"] == "parse-123" | |