Orchestrata Ultimate › Tests › Reference › scripts › test_history_intel

Tests reference — tests/scripts/test_history_intel.py

Module of tests/scripts, split out because the directory page would be too large.

Prose pending.

tests/scripts/test_history_intel.py

source · 56 tests · 798 lines

Tests for scripts/history_intel.py -- the TIME dimension over the Prolog

Covers: core.paths

Kind Name Line Description
class TestNormalizeReqId 91 docs/req-id-grammar.md: canonical NEW-citation form is the padded,
method TestNormalizeReqId.test_pads_and_hyphenates_single_digit_story 98
method TestNormalizeReqId.test_pads_and_hyphenates_two_digit_story 110
method TestNormalizeReqId.test_hyphenates_already_padded_story 114
method TestNormalizeReqId.test_already_canonical_form_is_unchanged 118
method TestNormalizeReqId.test_non_story_req_id_is_unchanged 124
method TestNormalizeReqId.test_idempotent 127
class TestPlAtom 132
method TestPlAtom.test_doubles_single_quotes 133
method TestPlAtom.test_escapes_backslashes_before_quote_doubling 136 Regression: a literal backslash (e.g. from a commit message
method TestPlAtom.test_flattens_embedded_newlines_and_whitespace 146
method TestPlAtom.test_round_trips_through_real_swipl 151 The escaped atom must actually be readable Prolog, not just
class TestCommitNamesSymbol 174
method TestCommitNamesSymbol.test_true_on_whole_word_match 175
method TestCommitNamesSymbol.test_false_when_symbol_is_only_a_substring 180 CXPServer must NOT match inside CXPServicer -- the real case
method TestCommitNamesSymbol.test_false_when_symbol_absent 188
class TestAdrMentionsCommit 194
method TestAdrMentionsCommit.test_true_on_short_sha_prefix 195
method TestAdrMentionsCommit.test_false_when_no_hex_token_present 201
method TestAdrMentionsCommit.test_false_when_hex_token_is_not_a_prefix_of_this_commit 207
method TestAdrMentionsCommit.test_requires_length_seven_minimum 213 A short numeric-looking token below git's own minimum
class TestBestEffortKind 220
method TestBestEffortKind.test_recognizes_dataclass_marker 221
method TestBestEffortKind.test_recognizes_method_marker 226
method TestBestEffortKind.test_returns_none_when_no_keyword_present 231 No fabricated guess from bare capitalization -- only an explicit
class TestExtractFactsRealRepo 242
method TestExtractFactsRealRepo.test_extract_produces_nonempty_facts_and_counts 243
method TestExtractFactsRealRepo.test_output_is_valid_prolog 256
method TestExtractFactsRealRepo.test_curated_worked_examples_present_with_correct_mechanism 268
method TestExtractFactsRealRepo.test_no_duplicate_loss_facts_for_symbol_in_both_curated_and_bulk_sources 301 CXPMixin is independently present in BOTH CURATED_LOSS_EVENTS and
method TestExtractFactsRealRepo.test_rationale_recorded_for_symbols_the_commit_message_names 315
method TestExtractFactsRealRepo.test_adr_0038_flagged_reconstructed_and_never_a_rationale_source 334 ADR-0038 self-describes as reconstructed; this module's design
method TestExtractFactsRealRepo.test_corrected_scope_never_claims_the_false_field_migration 355 REGRESSION GUARD (the whole reason this module's scope was
class TestLossKnown 477
method TestLossKnown.test_loss_known_true_for_a_recorded_symbol 478
method TestLossKnown.test_no_loss_on_record_true_for_an_unrecorded_symbol 481 The correlation_id case: a symbol with no deleted_in/2 fact
class TestRationaleStatus 489
method TestRationaleStatus.test_no_recorded_rationale_true_when_nothing_backs_the_deletion 490
method TestRationaleStatus.test_no_recorded_rationale_false_when_a_source_exists 500
method TestRationaleStatus.test_rationale_status_recorded_branch_commit_message 508 Status's compound-term shape (``recorded(SourceType,
method TestRationaleStatus.test_rationale_status_recorded_branch_adr 521
method TestRationaleStatus.test_rationale_status_discussed_not_rationalized_branch 529 A reconstructed ADR discussing the loss does NOT count as a
method TestRationaleStatus.test_rationale_status_no_recorded_rationale_branch 538
method TestRationaleStatus.test_rationale_status_json_is_json_serializable_all_three_branches 544
class TestMechanisms 558 One query per mechanism -- renamed / moved / retyped / dropped.
method TestMechanisms.test_renamed 561
method TestMechanisms.test_moved 569
method TestMechanisms.test_retyped 577
method TestMechanisms.test_dropped 586
class TestCitationContext 593
method TestCitationContext.test_citation_context_passes_through_citation_mismatch 594
class TestExplainIntegration 602 explain.pl's explain_or_whynot_json/2 reaching history.pl's facts --
method TestExplainIntegration.test_explain_cites_the_commit_for_a_recorded_rationale 608
method TestExplainIntegration.test_explain_cites_the_documented_absence_for_no_recorded_rationale 628
method TestExplainIntegration.test_explain_whynot_branch_for_a_symbol_with_no_loss_event 643 A symbol with no deleted_in/2 fact at all: rationale_status/3
class TestNoClauseClobbering 663
method TestNoClauseClobbering.test_check_no_redefinition_passes_over_the_real_consult_set 664 explain.pl (module) + history.pl (module) + history_facts.pl
method TestNoClauseClobbering.test_check_no_redefinition_actually_detects_a_real_clobber 680 Proves the check above is not vacuously green: two module-less
method TestNoClauseClobbering.test_history_pl_declares_a_module 704 The single mechanical fact that makes the check above pass for
class TestCliEndToEnd 722
method TestCliEndToEnd.test_main_extract_returns_zero 723
method TestCliEndToEnd.test_main_what_for_a_symbol_with_no_loss_event 729
method TestCliEndToEnd.test_main_why_for_cxpmixin_reports_no_recorded_rationale 735
method TestCliEndToEnd.test_main_how_reports_the_move_mechanism_for_cxpservicer 745
method TestCliEndToEnd.test_main_explain_produces_a_proof_tree 755
method TestCliEndToEnd.test_main_report_counts_are_internally_consistent 771
method TestCliEndToEnd.test_main_no_recorded_rationale_subcommand 780
method TestCliEndToEnd.test_main_when_reports_commit_and_date 786
method TestCliEndToEnd.test_cli_text_mode_does_not_raise 794