Historical · 2026-10-16

This report applies to its stated historical version and scope. It is preserved as evidence and does not qualify changed source in a later release.

Download report

0.3.0 complete test log · historical

Command: python3 -m unittest discover -s tests -v
Environment: GNU/Linux x86_64, Python 3.12.12, isolated namespaces, ephemeral keys
Exit code: 0

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_reproducible_portable_package_runs_outside_repository (test_package.PortablePackageTests.test_reproducible_portable_package_runs_outside_repository) ... ok
test_source_staging_excludes_local_execution_instructions (test_package.PortablePackageTests.test_source_staging_excludes_local_execution_instructions) ... 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_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_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_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 81 tests in 4.638s

OK