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 |