tests.test_binaries_page module

Tests for the binaries catalog generator.

tests.test_binaries_page.test_csv_header_row()[source]

An empty catalog still carries the header row.

tests.test_binaries_page.test_csv_skips_drafts_and_foreign_tags()[source]

Draft releases and non-version tags stay out of the catalog.

tests.test_binaries_page.test_csv_skips_non_binary_assets()[source]

Only .bin and .exe assets become rows.

tests.test_binaries_page.test_csv_collapses_versionless_aliases()[source]

A versionless alias collapses onto its versioned digest sibling.

Assets without a recorded digest predate the aliases and are kept even when byte-identical.

tests.test_binaries_page.test_csv_rows_newest_version_first()[source]

Rows are ordered by descending version, not API order.

tests.test_binaries_page.test_csv_row_cells()[source]

Cells link the release, the download, and the VirusTotal analysis.

tests.test_binaries_page.test_csv_shield_tiers()[source]

Clean rows get a green check; low flagged shares a warning tint.

A digest with no scan record gets no link: that page does not exist.

A VirusTotal file URL only resolves for a file that was submitted, so deriving one from the GitHub asset digest alone pointed every unscanned binary at a blank page.

A record whose verdict counts are all zero is no evidence of a page.

tests.test_binaries_page.test_csv_platform_fallback_to_filename()[source]

A filename without a known target keeps the full name as label.

tests.test_binaries_page.test_chart_requires_two_releases()[source]

A single release with records renders no trend chart.

tests.test_binaries_page.test_chart_content()[source]

The chart embeds per-release timeline points, oldest first.

tests.test_binaries_page.test_chart_uses_earliest_snapshot()[source]

Later re-scans of the same file don’t alter the at-release trend.

tests.test_binaries_page.test_update_catalog_writes_the_csv_the_page_reads(tmp_path)[source]

The CSV lands where the page’s csv-table directive reads it.

tests.test_binaries_page.test_update_catalog_is_idempotent(tmp_path)[source]

A second run over the same data changes nothing.

tests.test_binaries_page.test_sync_binaries_reports_each_file_then_converges(tmp_path, monkeypatch)[source]

A first run writes the CSV and the page, and a second run changes neither.

tests.test_binaries_page.test_sync_binaries_fails_when_the_releases_are_unreadable(tmp_path, monkeypatch)[source]

An unreadable Releases API fails the run before any file is written.

tests.test_binaries_page.test_sync_binaries_refuses_a_json_scan_history(tmp_path, monkeypatch)[source]

A JSON history in place of the CSV one fails the run before any write.

tests.test_binaries_page.test_update_binaries_page_creates_from_template(tmp_path)[source]

A missing page is created with frontmatter, prose, and directives.

tests.test_binaries_page.test_update_binaries_page_empty_chart(tmp_path)[source]

An empty chart leaves a bare marker pair.

tests.test_binaries_page.test_update_binaries_page_preserves_prose(tmp_path)[source]

Hand-edited prose around the markers survives regeneration.

tests.test_binaries_page.test_update_binaries_page_idempotent(tmp_path)[source]

Rewriting identical content reports no change.

tests.test_binaries_page.test_update_binaries_page_refuses_markerless_file(tmp_path)[source]

An existing page without markers is never overwritten.

tests.test_binaries_page.test_docs_floor_table_matches_build_targets()[source]

The Minimum OS requirements table reflects the NUITKA_BUILD_TARGETS floors.

Those are the floors verify-binary enforces, and docs/binaries.md states them.