Atual · 2026-10-16

Fonte e testes 239cc2e: 183 testes GNU/Linux após normalizar a fixture Windows; fluxo medido em f72371a. Verificação final de publicação separada.

Baixar relatório

Log completo dos testes 0.4.1

test_authenticated_reference_detects_json_and_new_binary_changes (test_attestations.AttestationTests.test_authenticated_reference_detects_json_and_new_binary_changes) ... ok
test_authenticates_all_files_without_changing_them (test_attestations.AttestationTests.test_authenticates_all_files_without_changing_them) ... ok
test_cli_sign_and_audit_use_both_keys_and_checkpoint (test_attestations.AttestationTests.test_cli_sign_and_audit_use_both_keys_and_checkpoint) ... ok
test_concurrent_history_append_is_preserved (test_attestations.AttestationTests.test_concurrent_history_append_is_preserved) ... ok
test_duplicate_json_fields_and_nonfinite_values_are_rejected (test_attestations.AttestationTests.test_duplicate_json_fields_and_nonfinite_values_are_rejected) ... ok
test_history_appends_and_external_checkpoint_detects_rollback (test_attestations.AttestationTests.test_history_appends_and_external_checkpoint_detects_rollback) ... ok
test_independent_pins_are_required (test_attestations.AttestationTests.test_independent_pins_are_required) ... ok
test_manifest_changed_during_signing_does_not_commit (test_attestations.AttestationTests.test_manifest_changed_during_signing_does_not_commit) ... ok
test_report_failure_preserves_existing_history (test_attestations.AttestationTests.test_report_failure_preserves_existing_history) ... ok
test_stale_snapshot_and_keys_inside_project_are_refused (test_attestations.AttestationTests.test_stale_snapshot_and_keys_inside_project_are_refused) ... ok
test_unsigned_replacement_snapshot_is_rejected (test_attestations.AttestationTests.test_unsigned_replacement_snapshot_is_rejected) ... ok
test_compare_exit_code_and_report (test_cli.CliTests.test_compare_exit_code_and_report) ... ok
test_help_and_doctor_do_not_require_gui_or_gpg (test_cli.CliTests.test_help_and_doctor_do_not_require_gui_or_gpg) ... ok
test_json_report_is_saved_and_existing_files_are_preserved (test_cli.CliTests.test_json_report_is_saved_and_existing_files_are_preserved) ... ok
test_missing_owner_and_invalid_root_return_two_without_traceback (test_cli.CliTests.test_missing_owner_and_invalid_root_return_two_without_traceback) ... ok
test_preview_apply_verify_tamper_and_unmark_cli (test_cli.CliTests.test_preview_apply_verify_tamper_and_unmark_cli) ... ok
test_signature_flags_must_be_used_together (test_cli.CliTests.test_signature_flags_must_be_used_together) ... ok
test_active_lock_prevents_changes (test_core.CoreTests.test_active_lock_prevents_changes) ... ok
test_changed_missing_and_untracked_files_are_reported (test_core.CoreTests.test_changed_missing_and_untracked_files_are_reported) ... ok
test_compare_detects_copy_without_marker_and_with_renamed_variables (test_core.CoreTests.test_compare_detects_copy_without_marker_and_with_renamed_variables) ... ok
test_compare_exact_small_file_and_visible_mark (test_core.CoreTests.test_compare_exact_small_file_and_visible_mark) ... ok
test_compare_rejects_invalid_threshold (test_core.CoreTests.test_compare_rejects_invalid_threshold) ... ok
test_file_count_limit_fails_before_writes (test_core.CoreTests.test_file_count_limit_fails_before_writes) ... ok
test_licenses_dependencies_and_generated_files_are_not_marked (test_core.CoreTests.test_licenses_dependencies_and_generated_files_are_not_marked) ... ok
test_malformed_config_fails_cleanly (test_core.CoreTests.test_malformed_config_fails_cleanly) ... ok
test_malformed_manifest_fails_cleanly (test_core.CoreTests.test_malformed_manifest_fails_cleanly) ... ok
test_mark_is_idempotent_including_manifest (test_core.CoreTests.test_mark_is_idempotent_including_manifest) ... ok
test_mark_verify_unmark_is_byte_exact_across_languages (test_core.CoreTests.test_mark_verify_unmark_is_byte_exact_across_languages) ... ok
test_overlarge_source_does_not_silently_disappear (test_core.CoreTests.test_overlarge_source_does_not_silently_disappear) ... ok
test_owner_cannot_escape_block_or_html_comment (test_core.CoreTests.test_owner_cannot_escape_block_or_html_comment) ... ok
test_permissions_survive (test_core.CoreTests.test_permissions_survive) ... ok
test_plain_manifest_does_not_claim_authenticated_authorship (test_core.CoreTests.test_plain_manifest_does_not_claim_authenticated_authorship) ... ok
test_preview_writes_nothing (test_core.CoreTests.test_preview_writes_nothing) ... ok
test_python_shebang_encoding_docstring_and_future_import_survive (test_core.CoreTests.test_python_shebang_encoding_docstring_and_future_import_survive) ... ok
test_short_unrelated_files_are_not_similar_just_due_to_identifiers (test_core.CoreTests.test_short_unrelated_files_are_not_similar_just_due_to_identifiers) ... ok
test_symlink_is_rejected_without_reading_target (test_core.CoreTests.test_symlink_is_rejected_without_reading_target) ... ok
test_symlink_metadata_directory_is_rejected (test_core.CoreTests.test_symlink_metadata_directory_is_rejected) ... ok
test_transaction_rolls_back_after_write_failure (test_core.CoreTests.test_transaction_rolls_back_after_write_failure) ... ok
test_unmark_preserves_edits_and_lookalike_comment (test_core.CoreTests.test_unmark_preserves_edits_and_lookalike_comment) ... ok
test_unmark_preview_does_not_write (test_core.CoreTests.test_unmark_preview_does_not_write) ... ok
test_unsupported_encoding_is_reported (test_core.CoreTests.test_unsupported_encoding_is_reported) ... ok
test_audit_requires_both_independent_pins (test_full_cli.FullCliTests.test_audit_requires_both_independent_pins) ... ok
test_failed_report_does_not_write_snapshot (test_full_cli.FullCliTests.test_failed_report_does_not_write_snapshot) ... ok
test_legacy_mark_report_names_its_limited_scope (test_full_cli.FullCliTests.test_legacy_mark_report_names_its_limited_scope) ... ok
test_report_is_private_even_with_permissive_process_umask (test_full_cli.FullCliTests.test_report_is_private_even_with_permissive_process_umask) ... ok
test_snapshot_preview_apply_and_verify_cover_every_file (test_full_cli.FullCliTests.test_snapshot_preview_apply_and_verify_cover_every_file) ... ok
test_text_report_handles_full_snapshot_and_modes (test_full_cli.FullCliTests.test_text_report_handles_full_snapshot_and_modes) ... ok
test_all_file_types_are_hashed_without_modifying_bytes (test_integrity.IntegrityTests.test_all_file_types_are_hashed_without_modifying_bytes) ... ok
test_callback_failure_preserves_existing_snapshot_and_sources (test_integrity.IntegrityTests.test_callback_failure_preserves_existing_snapshot_and_sources) ... ok
test_change_during_hashing_is_rejected (test_integrity.IntegrityTests.test_change_during_hashing_is_rejected) ... ok
test_changed_missing_and_untracked_include_unmarkable_files (test_integrity.IntegrityTests.test_changed_missing_and_untracked_include_unmarkable_files) ... ok
test_checked_root_rejects_reparse_ancestors_and_metadata (test_integrity.IntegrityTests.test_checked_root_rejects_reparse_ancestors_and_metadata) ... ok
test_descriptor_ctime_change_still_rejects_same_size_and_mtime (test_integrity.IntegrityTests.test_descriptor_ctime_change_still_rejects_same_size_and_mtime) ... ok
test_directory_ctime_change_before_open_is_rejected (test_integrity.IntegrityTests.test_directory_ctime_change_before_open_is_rejected) ... ok
test_inventory_rejects_reparse_attributes_on_files_and_directories (test_integrity.IntegrityTests.test_inventory_rejects_reparse_attributes_on_files_and_directories) ... ok
test_large_binary_hashing_uses_bounded_memory (test_integrity.IntegrityTests.test_large_binary_hashing_uses_bounded_memory) ... ok
test_legacy_identity_and_metadata_are_preserved (test_integrity.IntegrityTests.test_legacy_identity_and_metadata_are_preserved) ... ok
test_metadata_read_rejects_regular_to_fifo_race_without_blocking (test_integrity.IntegrityTests.test_metadata_read_rejects_regular_to_fifo_race_without_blocking) ... ok
test_mode_changes_are_recorded_and_detected (test_integrity.IntegrityTests.test_mode_changes_are_recorded_and_detected) ... ok
test_non_utf8_filename_is_rejected (test_integrity.IntegrityTests.test_non_utf8_filename_is_rejected) ... ok
test_only_actual_vcs_and_metadata_directories_are_excluded (test_integrity.IntegrityTests.test_only_actual_vcs_and_metadata_directories_are_excluded) ... ok
test_path_ctime_change_still_rejects_same_size_and_mtime (test_integrity.IntegrityTests.test_path_ctime_change_still_rejects_same_size_and_mtime) ... ok
test_preview_creates_no_metadata (test_integrity.IntegrityTests.test_preview_creates_no_metadata) ... ok
test_project_identity_survives_repeated_snapshot (test_integrity.IntegrityTests.test_project_identity_survives_repeated_snapshot) ... ok
test_raw_manifest_is_frozen_and_hashes_cover_exact_bytes (test_integrity.IntegrityTests.test_raw_manifest_is_frozen_and_hashes_cover_exact_bytes) ... ok
test_read_only_mode_change_is_detected_on_all_platforms (test_integrity.IntegrityTests.test_read_only_mode_change_is_detected_on_all_platforms) ... ok
test_special_file_is_rejected_without_blocking (test_integrity.IntegrityTests.test_special_file_is_rejected_without_blocking) ... ok
test_split_path_and_descriptor_ctime_preserves_stable_inventory (test_integrity.IntegrityTests.test_split_path_and_descriptor_ctime_preserves_stable_inventory) ... ok
test_strict_json_rejects_duplicate_keys_nan_and_unknown_fields (test_integrity.IntegrityTests.test_strict_json_rejects_duplicate_keys_nan_and_unknown_fields) ... ok
test_strict_schema_rejects_forged_counts_paths_and_types (test_integrity.IntegrityTests.test_strict_schema_rejects_forged_counts_paths_and_types) ... ok
test_symlink_files_directories_and_excluded_names_fail_closed (test_integrity.IntegrityTests.test_symlink_files_directories_and_excluded_names_fail_closed) ... ok
test_unreadable_file_is_a_failure (test_integrity.IntegrityTests.test_unreadable_file_is_a_failure) ... ok
test_unsafe_relative_filename_is_rejected (test_integrity.IntegrityTests.test_unsafe_relative_filename_is_rejected) ... ok
test_verification_never_accepts_failed_current_file_as_covered (test_integrity.IntegrityTests.test_verification_never_accepts_failed_current_file_as_covered) ... ok
test_windows_cached_directory_metadata_does_not_replace_file_identity (test_integrity.IntegrityTests.test_windows_cached_directory_metadata_does_not_replace_file_identity) ... ok
test_workload_limits_fail_before_metadata_write (test_integrity.IntegrityTests.test_workload_limits_fail_before_metadata_write) ... ok
test_dangling_output_symlink_is_rejected_without_creating_its_target (test_package.PortablePackageTests.test_dangling_output_symlink_is_rejected_without_creating_its_target) ... ok
test_existing_generated_files_are_rejected_before_any_artifact_write (test_package.PortablePackageTests.test_existing_generated_files_are_rejected_before_any_artifact_write) ... ok
test_missing_archiver_is_rejected_before_output_directory_creation (test_package.PortablePackageTests.test_missing_archiver_is_rejected_before_output_directory_creation) ... ok
test_output_artifact_symlinks_cannot_overwrite_external_files (test_package.PortablePackageTests.test_output_artifact_symlinks_cannot_overwrite_external_files) ... ok
test_reproducible_portable_package_runs_outside_repository (test_package.PortablePackageTests.test_reproducible_portable_package_runs_outside_repository) ... ok
test_selected_source_directory_symlinks_are_rejected (test_package.PortablePackageTests.test_selected_source_directory_symlinks_are_rejected) ... ok
test_source_staging_excludes_local_execution_instructions (test_package.PortablePackageTests.test_source_staging_excludes_local_execution_instructions) ... ok
test_source_staging_preserves_executable_intent_without_suffix_guesses (test_package.PortablePackageTests.test_source_staging_preserves_executable_intent_without_suffix_guesses) ... ok
test_symlink_is_rejected_before_a_portable_artifact_is_written (test_package.PortablePackageTests.test_symlink_is_rejected_before_a_portable_artifact_is_written) ... ok
test_canonical_json_has_one_ascii_representation (test_pq_signing.CanonicalTests.test_canonical_json_has_one_ascii_representation) ... ok
test_fingerprint_uses_sha256_and_unpadded_base64 (test_pq_signing.CanonicalTests.test_fingerprint_uses_sha256_and_unpadded_base64) ... ok
test_missing_backend_reports_unavailable_and_never_falls_back (test_pq_signing.CanonicalTests.test_missing_backend_reports_unavailable_and_never_falls_back) ... ok
test_non_json_types_and_nonfinite_numbers_are_rejected (test_pq_signing.CanonicalTests.test_non_json_types_and_nonfinite_numbers_are_rejected) ... ok
test_ambient_configuration_and_provider_directories_are_ignored (test_pq_signing.HybridTests.test_ambient_configuration_and_provider_directories_are_ignored) ... ok
test_backend_identity_works_without_python_311_file_digest (test_pq_signing.HybridTests.test_backend_identity_works_without_python_311_file_digest) ... ok
test_both_independent_pins_are_mandatory (test_pq_signing.HybridTests.test_both_independent_pins_are_mandatory) ... ok
test_bounds_and_malformed_previous_fail_closed (test_pq_signing.HybridTests.test_bounds_and_malformed_previous_fail_closed) ... ok
test_changed_payload_and_unknown_algorithm_cannot_downgrade (test_pq_signing.HybridTests.test_changed_payload_and_unknown_algorithm_cannot_downgrade) ... ok
test_checkpoint_rejects_prefix_rollback_reorder_and_duplicate_records (test_pq_signing.HybridTests.test_checkpoint_rejects_prefix_rollback_reorder_and_duplicate_records) ... ok
test_each_component_signature_is_required_and_mathematically_verified (test_pq_signing.HybridTests.test_each_component_signature_is_required_and_mathematically_verified) ... ok
test_encrypted_key_uses_native_passphrase_file_without_python_reading_secrets (test_pq_signing.HybridTests.test_encrypted_key_uses_native_passphrase_file_without_python_reading_secrets) ... ok
test_native_roundtrip_records_exact_manifest_and_trust_boundaries (test_pq_signing.HybridTests.test_native_roundtrip_records_exact_manifest_and_trust_boundaries) ... ok
test_private_key_types_symlinks_and_sizes_are_rejected (test_pq_signing.HybridTests.test_private_key_types_symlinks_and_sizes_are_rejected) ... ok
test_rotation_authenticates_prefix_without_claiming_historical_key_continuity (test_pq_signing.HybridTests.test_rotation_authenticates_prefix_without_claiming_historical_key_continuity) ... ok
test_unknown_fields_and_noncanonical_base64_are_rejected (test_pq_signing.HybridTests.test_unknown_fields_and_noncanonical_base64_are_rejected) ... ok
test_wrong_context_signature_is_rejected_even_with_valid_classical_signature (test_pq_signing.HybridTests.test_wrong_context_signature_is_rejected_even_with_valid_classical_signature) ... ok
test_before_commit_failure_rolls_back_ciphertext_only (test_privacy.BundleTests.test_before_commit_failure_rolls_back_ciphertext_only) ... ok
test_before_commit_receives_prepared_report_before_atomic_publish (test_privacy.BundleTests.test_before_commit_receives_prepared_report_before_atomic_publish) ... ok
test_binary_header_downgrades_are_rejected_before_publish (test_privacy.BundleTests.test_binary_header_downgrades_are_rejected_before_publish) ... ok
test_bundle_streams_files_without_read_bytes_or_plaintext_copy (test_privacy.BundleTests.test_bundle_streams_files_without_read_bytes_or_plaintext_copy) ... ok
test_changed_public_key_after_compression_is_rejected (test_privacy.BundleTests.test_changed_public_key_after_compression_is_rejected) ... ok
test_child_environment_does_not_inherit_ambient_credentials (test_privacy.BundleTests.test_child_environment_does_not_inherit_ambient_credentials) ... ok
test_ciphertext_replacement_before_publish_is_preserved_but_not_published (test_privacy.BundleTests.test_ciphertext_replacement_before_publish_is_preserved_but_not_published) ... ok
test_cli_output_success_writes_matching_prepared_report (test_privacy.BundleTests.test_cli_output_success_writes_matching_prepared_report) ... ok
test_cli_report_flush_failure_prevents_archive_and_removes_partial_report (test_privacy.BundleTests.test_cli_report_flush_failure_prevents_archive_and_removes_partial_report) ... ok
test_concurrent_output_creation_is_never_overwritten_or_removed (test_privacy.BundleTests.test_concurrent_output_creation_is_never_overwritten_or_removed) ... ok
test_descriptor_ctime_change_still_rejects_same_size_and_mtime (test_privacy.BundleTests.test_descriptor_ctime_change_still_rejects_same_size_and_mtime) ... ok
test_encryption_type_is_read_from_binary_block_not_version_words (test_privacy.BundleTests.test_encryption_type_is_read_from_binary_block_not_version_words) ... ok
test_file_and_total_size_limits_are_checked_before_hashing (test_privacy.BundleTests.test_file_and_total_size_limits_are_checked_before_hashing) ... ok
test_file_growth_is_rejected_instead_of_consuming_an_unbounded_stream (test_privacy.BundleTests.test_file_growth_is_rejected_instead_of_consuming_an_unbounded_stream) ... ok
test_native_failure_and_missing_backend_fail_closed (test_privacy.BundleTests.test_native_failure_and_missing_backend_fail_closed) ... ok
test_native_failure_partial_ciphertext_is_removed (test_privacy.BundleTests.test_native_failure_partial_ciphertext_is_removed) ... ok
test_output_must_be_new_external_zupt_archive (test_privacy.BundleTests.test_output_must_be_new_external_zupt_archive) ... ok
test_path_ctime_change_still_rejects_same_size_and_mtime (test_privacy.BundleTests.test_path_ctime_change_still_rejects_same_size_and_mtime) ... ok
test_preview_has_no_writes_and_includes_vcs_and_state (test_privacy.BundleTests.test_preview_has_no_writes_and_includes_vcs_and_state) ... ok
test_public_key_is_external_regular_exact_native_public_format (test_privacy.BundleTests.test_public_key_is_external_regular_exact_native_public_format) ... ok
test_reader_cannot_block_on_a_regular_file_replaced_with_a_fifo (test_privacy.BundleTests.test_reader_cannot_block_on_a_regular_file_replaced_with_a_fifo) ... ok
test_real_encrypted_roundtrip_contains_every_regular_file (test_privacy.BundleTests.test_real_encrypted_roundtrip_contains_every_regular_file) ... ok
test_recipient_pin_is_required_and_checked_before_compression (test_privacy.BundleTests.test_recipient_pin_is_required_and_checked_before_compression) ... ok
test_source_changes_and_added_files_before_publish_are_rejected (test_privacy.BundleTests.test_source_changes_and_added_files_before_publish_are_rejected) ... ok
test_source_mutation_during_native_compression_is_rejected (test_privacy.BundleTests.test_source_mutation_during_native_compression_is_rejected) ... ok
test_split_path_and_descriptor_ctime_preserves_native_bundle (test_privacy.BundleTests.test_split_path_and_descriptor_ctime_preserves_native_bundle) ... ok
test_symbolic_links_anywhere_and_special_files_are_rejected (test_privacy.BundleTests.test_symbolic_links_anywhere_and_special_files_are_rejected) ... ok
test_timeout_discards_ciphertext_and_hides_native_details (test_privacy.BundleTests.test_timeout_discards_ciphertext_and_hides_native_details) ... ok
test_wrong_private_key_and_ciphertext_tamper_fail_native_validation (test_privacy.BundleTests.test_wrong_private_key_and_ciphertext_tamper_fail_native_validation) ... ok
test_comparison_refuses_excessive_match_results (test_production.ProductionTests.test_comparison_refuses_excessive_match_results) ... ok
test_entry_budget_is_enforced_for_unsupported_files (test_production.ProductionTests.test_entry_budget_is_enforced_for_unsupported_files) ... ok
test_existing_report_prevents_all_project_mutations (test_production.ProductionTests.test_existing_report_prevents_all_project_mutations) ... ok
test_failed_operation_cleans_reserved_report (test_production.ProductionTests.test_failed_operation_cleans_reserved_report) ... ok
test_late_report_write_and_flush_failures_do_not_mark_sources (test_production.ProductionTests.test_late_report_write_and_flush_failures_do_not_mark_sources) ... ok
test_late_report_write_and_flush_failures_do_not_unmark_sources (test_production.ProductionTests.test_late_report_write_and_flush_failures_do_not_unmark_sources) ... ok
test_project_write_failure_removes_finished_report_and_reverts_sources (test_production.ProductionTests.test_project_write_failure_removes_finished_report_and_reverts_sources) ... ok
test_report_inside_project_is_rejected_before_writes (test_production.ProductionTests.test_report_inside_project_is_rejected_before_writes) ... ok
test_report_symlink_loop_fails_cleanly_before_mutation (test_production.ProductionTests.test_report_symlink_loop_fails_cleanly_before_mutation) ... ok
test_successful_operation_saves_a_complete_external_report (test_production.ProductionTests.test_successful_operation_saves_a_complete_external_report) ... ok
test_unwritable_report_prevents_all_project_mutations (test_production.ProductionTests.test_unwritable_report_prevents_all_project_mutations) ... ok
test_aggregate_source_limit_accounts_for_watermark_overhead (test_regressions.ReviewRegressions.test_aggregate_source_limit_accounts_for_watermark_overhead) ... ok
test_complete_own_marker_inside_multiline_string_is_preserved (test_regressions.ReviewRegressions.test_complete_own_marker_inside_multiline_string_is_preserved) ... ok
test_emacs_ruby_and_css_prologues_remain_first (test_regressions.ReviewRegressions.test_emacs_ruby_and_css_prologues_remain_first) ... ok
test_encoding_lookalike_inside_css_comment_keeps_comment_balanced (test_regressions.ReviewRegressions.test_encoding_lookalike_inside_css_comment_keeps_comment_balanced) ... ok
test_encoding_lookalike_inside_docstring_keeps_runtime_value (test_regressions.ReviewRegressions.test_encoding_lookalike_inside_docstring_keeps_runtime_value) ... ok
test_full_5000_record_manifest_can_be_loaded (test_regressions.ReviewRegressions.test_full_5000_record_manifest_can_be_loaded) ... ok
test_generated_manifest_limit_is_checked_before_source_writes (test_regressions.ReviewRegressions.test_generated_manifest_limit_is_checked_before_source_writes) ... ok
test_gui_owner_selection_rejects_symlink_metadata_parent (test_regressions.ReviewRegressions.test_gui_owner_selection_rejects_symlink_metadata_parent) ... ok
test_gui_worker_finishes_transaction_before_process_exit (test_regressions.ReviewRegressions.test_gui_worker_finishes_transaction_before_process_exit) ... ok
test_lock_precedes_configuration_snapshot (test_regressions.ReviewRegressions.test_lock_precedes_configuration_snapshot) ... ok
test_maximum_size_source_remains_readable_after_marking (test_regressions.ReviewRegressions.test_maximum_size_source_remains_readable_after_marking) ... ok
test_same_line_xml_header_round_trip_and_idempotence (test_regressions.ReviewRegressions.test_same_line_xml_header_round_trip_and_idempotence) ... ok
test_unterminated_encoding_only_header_is_skipped_without_mutation (test_regressions.ReviewRegressions.test_unterminated_encoding_only_header_is_skipped_without_mutation) ... ok
test_actual_selftest_checks_core_and_available_signer (test_selftest.SelfTestTests.test_actual_selftest_checks_core_and_available_signer) ... ok
test_cli_selftest_runs_with_an_unrelated_working_directory (test_selftest.SelfTestTests.test_cli_selftest_runs_with_an_unrelated_working_directory) ... ok
test_optional_tool_absence_is_explicit_without_hiding_core_results (test_selftest.SelfTestTests.test_optional_tool_absence_is_explicit_without_hiding_core_results) ... ok
test_temporary_sources_and_ephemeral_keys_are_cleaned (test_selftest.SelfTestTests.test_temporary_sources_and_ephemeral_keys_are_cleaned) ... ok
test_unavailable_python_execution_is_reported_as_failure (test_selftest.SelfTestTests.test_unavailable_python_execution_is_reported_as_failure) ... ok
test_authenticated_cli_rejects_tampered_source (test_signing.SigningTests.test_authenticated_cli_rejects_tampered_source) ... ok
test_invalid_signature_and_invalid_key_are_rejected (test_signing.SigningTests.test_invalid_signature_and_invalid_key_are_rejected) ... ok
test_real_signature_verifies_with_pinned_public_key (test_signing.SigningTests.test_real_signature_verifies_with_pinned_public_key) ... ok
test_stale_source_tree_cannot_be_signed (test_signing.SigningTests.test_stale_source_tree_cannot_be_signed) ... ok
test_tampered_manifest_is_rejected (test_signing.SigningTests.test_tampered_manifest_is_rejected) ... ok
test_wrong_pinned_fingerprint_is_rejected (test_signing.SigningTests.test_wrong_pinned_fingerprint_is_rejected) ... ok
test_distinct_reports_keep_raw_files_and_bilingual_readable_routes (test_site.SiteBuildTests.test_distinct_reports_keep_raw_files_and_bilingual_readable_routes) ... ok
test_duplicate_report_filenames_are_rejected_before_output_changes (test_site.SiteBuildTests.test_duplicate_report_filenames_are_rejected_before_output_changes) ... ok
test_duplicate_report_stems_are_rejected_before_output_changes (test_site.SiteBuildTests.test_duplicate_report_stems_are_rejected_before_output_changes) ... ok
test_cli_refuses_incomplete_or_mixed_verification_modes (test_ssh_signing.SSHSigningTests.test_cli_refuses_incomplete_or_mixed_verification_modes) ... ok
test_cli_sign_verify_and_tamper_exit_codes (test_ssh_signing.SSHSigningTests.test_cli_sign_verify_and_tamper_exit_codes) ... ok
test_inconsistent_private_and_public_pair_is_rejected (test_ssh_signing.SSHSigningTests.test_inconsistent_private_and_public_pair_is_rejected) ... ok
test_modified_manifest_is_rejected (test_ssh_signing.SSHSigningTests.test_modified_manifest_is_rejected) ... ok
test_modified_signature_is_rejected (test_ssh_signing.SSHSigningTests.test_modified_signature_is_rejected) ... ok
test_multiple_public_keys_are_rejected (test_ssh_signing.SSHSigningTests.test_multiple_public_keys_are_rejected) ... ok
test_private_key_inside_a_canonical_root_alias_is_rejected (test_ssh_signing.SSHSigningTests.test_private_key_inside_a_canonical_root_alias_is_rejected) ... ok
test_private_key_inside_source_tree_is_rejected (test_ssh_signing.SSHSigningTests.test_private_key_inside_source_tree_is_rejected) ... ok
test_real_signature_authenticates_a_pinned_key (test_ssh_signing.SSHSigningTests.test_real_signature_authenticates_a_pinned_key) ... ok
test_report_failure_does_not_publish_signature (test_ssh_signing.SSHSigningTests.test_report_failure_does_not_publish_signature) ... ok
test_signature_from_another_namespace_is_rejected (test_ssh_signing.SSHSigningTests.test_signature_from_another_namespace_is_rejected) ... ok
test_stale_tree_cannot_be_signed_as_a_fresh_release (test_ssh_signing.SSHSigningTests.test_stale_tree_cannot_be_signed_as_a_fresh_release) ... ok
test_wrong_pinned_fingerprint_is_rejected (test_ssh_signing.SSHSigningTests.test_wrong_pinned_fingerprint_is_rejected) ... ok
test_wrong_public_key_is_rejected_even_with_its_correct_fingerprint (test_ssh_signing.SSHSigningTests.test_wrong_public_key_is_rejected_even_with_its_correct_fingerprint) ... ok

----------------------------------------------------------------------
Ran 183 tests in 7.276s

OK