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.
- tests.test_binaries_page.test_csv_no_analysis_link_without_record()[source]¶
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.
- tests.test_binaries_page.test_csv_no_analysis_link_for_empty_record()[source]¶
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-tabledirective 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.
