Test Report

The results of one pytest run of this repository’s tests (SEG-OUT-…). Each test case is one need with its result; a test that has a test specification links to it (reports), and through it to the requirements it verifies. The run is a directory in the shape of a run bundle: junit.xml, the revision of the checkout and its dirty flag, the run name and the command. python -m doc test-run makes one in build/test-run; python -m doc build --test-run DIR names another.

The run this report shows

Run name

pytest-fb3f4dcd8439

Started

2026-10-08T14:41:22.960335+00:00

Revision

fb3f4dcd8439c1566b6a69d3e5e6ca7fb8fb61ab

Working tree

clean

Passed

1519

Failed

0

Errors

0

Skipped

0

tests/specification/test_case_evidence_removal.py

Test Outcome: test_a_refused_sync_removes_nothing SEG-OUT-2C5ADD5EB392
nodeid: tests/specification/test_case_evidence_removal.py::test_a_refused_sync_removes_nothing
result: passed
reports: SEG-TS-101
Test Outcome: test_a_second_sync_removes_nothing_and_changes_nothing SEG-OUT-248A4201C4BC
nodeid: tests/specification/test_case_evidence_removal.py::test_a_second_sync_removes_nothing_and_changes_nothing
result: passed
reports: SEG-TS-100
Test Outcome: test_a_stored_package_without_run_bundle_digests_still_reads SEG-OUT-CD38029D5C6C
nodeid: tests/specification/test_case_evidence_removal.py::test_a_stored_package_without_run_bundle_digests_still_reads
result: passed
reports: SEG-TS-103
Test Outcome: test_a_vanished_strong_edge_is_reported_and_kept_and_evidence_is_not_reported SEG-OUT-E6A8AD72C66A
nodeid: tests/specification/test_case_evidence_removal.py::test_a_vanished_strong_edge_is_reported_and_kept_and_evidence_is_not_reported
result: passed
reports: SEG-TS-102
Test Outcome: test_case_sync_removes_the_stored_evidence_and_names_it SEG-OUT-E0DAE59F9D52
nodeid: tests/specification/test_case_evidence_removal.py::test_case_sync_removes_the_stored_evidence_and_names_it
result: passed
reports: SEG-TS-099
Test Outcome: test_the_store_refuses_test_outcomes_and_evidence_edges SEG-OUT-C8F05277DDDC
nodeid: tests/specification/test_case_evidence_removal.py::test_the_store_refuses_test_outcomes_and_evidence_edges
result: passed
reports: SEG-TS-098

tests/specification/test_cli_producer_reports.py

Test Outcome: test_a_reader_with_no_usable_repository_cannot_be_judged SEG-OUT-5CBA771F700F
nodeid: tests/specification/test_cli_producer_reports.py::test_a_reader_with_no_usable_repository_cannot_be_judged
result: passed
reports: SEG-TS-182
Test Outcome: test_case_check_says_why_the_producer_cannot_be_read SEG-OUT-2108911437AD
nodeid: tests/specification/test_cli_producer_reports.py::test_case_check_says_why_the_producer_cannot_be_read
result: passed
reports: SEG-TS-180
Test Outcome: test_case_sync_over_a_stream_that_cannot_be_built_writes_nothing SEG-OUT-7903AE8E6527
nodeid: tests/specification/test_cli_producer_reports.py::test_case_sync_over_a_stream_that_cannot_be_built_writes_nothing
result: passed
reports: SEG-TS-183
Test Outcome: test_graph_check_says_which_stream_it_checked SEG-OUT-2FE2A79D0663
nodeid: tests/specification/test_cli_producer_reports.py::test_graph_check_says_which_stream_it_checked
result: passed
reports: SEG-TS-181

tests/specification/test_commitment.py

Test Outcome: test_the_design_root_seals_the_whole_design_set SEG-OUT-1E4D6D3F3EBD
nodeid: tests/specification/test_commitment.py::test_the_design_root_seals_the_whole_design_set
result: passed
reports: SEG-TS-005
Test Outcome: test_the_edge_hash_binds_endpoints_type_and_both_node_hashes SEG-OUT-FA40A912EB12
nodeid: tests/specification/test_commitment.py::test_the_edge_hash_binds_endpoints_type_and_both_node_hashes
result: passed
reports: SEG-TS-004
Test Outcome: test_the_node_hash_derives_from_type_and_content_hashes_alone SEG-OUT-B74D3D9649C4
nodeid: tests/specification/test_commitment.py::test_the_node_hash_derives_from_type_and_content_hashes_alone
result: passed
reports: SEG-TS-006

tests/specification/test_config_need_ids.py

Test Outcome: test_a_null_list_of_need_identifiers_is_a_list_that_is_not_given SEG-OUT-B609CA805FB1
nodeid: tests/specification/test_config_need_ids.py::test_a_null_list_of_need_identifiers_is_a_list_that_is_not_given
result: passed
reports: SEG-TS-417
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[bare] SEG-OUT-7476596D13A8
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[bare]
result: passed
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[bool] SEG-OUT-C4D651AC0581
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[bool]
result: passed
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[empty-text] SEG-OUT-E5B4A4D30C77
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[empty-text]
result: passed
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[empty] SEG-OUT-62A897C34BB6
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[empty]
result: passed
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[int] SEG-OUT-06ADB3EBB1BD
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[int]
result: passed
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[map] SEG-OUT-FDAC572516FE
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[map]
result: passed
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[number] SEG-OUT-1DAC5F24D91C
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[number]
result: passed
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[text-and-empty] SEG-OUT-4218307F4A1D
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[text-and-empty]
result: passed
Test Outcome: test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[text-and-number] SEG-OUT-9762FBCAF76B
nodeid: tests/specification/test_config_need_ids.py::test_need_identifiers_that_are_empty_or_not_text_are_refused_naming_the_block[text-and-number]
result: passed
Test Outcome: test_the_list_of_need_identifiers_is_refused_outside_the_implementations_block[requirements] SEG-OUT-D5CDE7C16B66
nodeid: tests/specification/test_config_need_ids.py::test_the_list_of_need_identifiers_is_refused_outside_the_implementations_block[requirements]
result: passed
Test Outcome: test_the_list_of_need_identifiers_is_refused_outside_the_implementations_block[specifications] SEG-OUT-2199289FAE72
nodeid: tests/specification/test_config_need_ids.py::test_the_list_of_need_identifiers_is_refused_outside_the_implementations_block[specifications]
result: passed
Test Outcome: test_the_loader_carries_the_list_of_need_identifiers SEG-OUT-7C42FD03E9D8
nodeid: tests/specification/test_config_need_ids.py::test_the_loader_carries_the_list_of_need_identifiers
result: passed
reports: SEG-TS-415

tests/specification/test_config_need_types.py

Test Outcome: test_an_empty_list_of_need_types_is_refused_naming_the_block[implementations] SEG-OUT-4F162414C38B
nodeid: tests/specification/test_config_need_types.py::test_an_empty_list_of_need_types_is_refused_naming_the_block[implementations]
result: passed
Test Outcome: test_an_empty_list_of_need_types_is_refused_naming_the_block[requirements] SEG-OUT-C8D393C68776
nodeid: tests/specification/test_config_need_types.py::test_an_empty_list_of_need_types_is_refused_naming_the_block[requirements]
result: passed
Test Outcome: test_an_empty_list_of_need_types_is_refused_naming_the_block[specifications] SEG-OUT-4BD7E0647DBA
nodeid: tests/specification/test_config_need_types.py::test_an_empty_list_of_need_types_is_refused_naming_the_block[specifications]
result: passed
Test Outcome: test_need_types_that_are_not_a_list_of_text_are_refused_naming_the_block[implementations] SEG-OUT-FA6FA55D453F
nodeid: tests/specification/test_config_need_types.py::test_need_types_that_are_not_a_list_of_text_are_refused_naming_the_block[implementations]
result: passed
Test Outcome: test_need_types_that_are_not_a_list_of_text_are_refused_naming_the_block[requirements] SEG-OUT-E304D79DE871
nodeid: tests/specification/test_config_need_types.py::test_need_types_that_are_not_a_list_of_text_are_refused_naming_the_block[requirements]
result: passed
Test Outcome: test_need_types_that_are_not_a_list_of_text_are_refused_naming_the_block[specifications] SEG-OUT-3C5880E7CAC0
nodeid: tests/specification/test_config_need_types.py::test_need_types_that_are_not_a_list_of_text_are_refused_naming_the_block[specifications]
result: passed

tests/specification/test_config_path_root.py

Test Outcome: test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types0-implementations] SEG-OUT-BBF7653C7CE8
nodeid: tests/specification/test_config_path_root.py::test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types0-implementations]
result: passed
Test Outcome: test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types0-requirements] SEG-OUT-7FB5600034C8
nodeid: tests/specification/test_config_path_root.py::test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types0-requirements]
result: passed
Test Outcome: test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types0-specifications] SEG-OUT-5BDFE92499D4
nodeid: tests/specification/test_config_path_root.py::test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types0-specifications]
result: passed
Test Outcome: test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types1-implementations] SEG-OUT-7E40D4708B66
nodeid: tests/specification/test_config_path_root.py::test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types1-implementations]
result: passed
Test Outcome: test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types1-requirements] SEG-OUT-29490713702E
nodeid: tests/specification/test_config_path_root.py::test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types1-requirements]
result: passed
Test Outcome: test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types1-specifications] SEG-OUT-18095B468AF2
nodeid: tests/specification/test_config_path_root.py::test_a_need_type_that_is_empty_text_is_refused_naming_the_block[types1-specifications]
result: passed
Test Outcome: test_a_path_root_that_is_not_text_is_refused_naming_the_block[7-implementations] SEG-OUT-1E575FD61197
nodeid: tests/specification/test_config_path_root.py::test_a_path_root_that_is_not_text_is_refused_naming_the_block[7-implementations]
result: passed
Test Outcome: test_a_path_root_that_is_not_text_is_refused_naming_the_block[7-specifications] SEG-OUT-5C9649C56AC1
nodeid: tests/specification/test_config_path_root.py::test_a_path_root_that_is_not_text_is_refused_naming_the_block[7-specifications]
result: passed
Test Outcome: test_a_path_root_that_is_not_text_is_refused_naming_the_block[True-implementations] SEG-OUT-FC1D72103485
nodeid: tests/specification/test_config_path_root.py::test_a_path_root_that_is_not_text_is_refused_naming_the_block[True-implementations]
result: passed
Test Outcome: test_a_path_root_that_is_not_text_is_refused_naming_the_block[True-specifications] SEG-OUT-5DBC508A1296
nodeid: tests/specification/test_config_path_root.py::test_a_path_root_that_is_not_text_is_refused_naming_the_block[True-specifications]
result: passed
Test Outcome: test_a_path_root_that_is_not_text_is_refused_naming_the_block[value1-implementations] SEG-OUT-8F909ACEF626
nodeid: tests/specification/test_config_path_root.py::test_a_path_root_that_is_not_text_is_refused_naming_the_block[value1-implementations]
result: passed
Test Outcome: test_a_path_root_that_is_not_text_is_refused_naming_the_block[value1-specifications] SEG-OUT-83A558704B3B
nodeid: tests/specification/test_config_path_root.py::test_a_path_root_that_is_not_text_is_refused_naming_the_block[value1-specifications]
result: passed
Test Outcome: test_a_path_root_that_is_not_text_is_refused_naming_the_block[value2-implementations] SEG-OUT-8D0C0BA66EB4
nodeid: tests/specification/test_config_path_root.py::test_a_path_root_that_is_not_text_is_refused_naming_the_block[value2-implementations]
result: passed
Test Outcome: test_a_path_root_that_is_not_text_is_refused_naming_the_block[value2-specifications] SEG-OUT-BC7AFE236274
nodeid: tests/specification/test_config_path_root.py::test_a_path_root_that_is_not_text_is_refused_naming_the_block[value2-specifications]
result: passed
Test Outcome: test_null_need_types_of_a_doxygen_block_are_not_given[implementations] SEG-OUT-3F52881283D9
nodeid: tests/specification/test_config_path_root.py::test_null_need_types_of_a_doxygen_block_are_not_given[implementations]
result: passed
Test Outcome: test_null_need_types_of_a_doxygen_block_are_not_given[specifications] SEG-OUT-89DFC723E10A
nodeid: tests/specification/test_config_path_root.py::test_null_need_types_of_a_doxygen_block_are_not_given[specifications]
result: passed
Test Outcome: test_null_need_types_of_the_requirements_block_are_still_refused SEG-OUT-919AD9CA0A90
nodeid: tests/specification/test_config_path_root.py::test_null_need_types_of_the_requirements_block_are_still_refused
result: passed
reports: SEG-TS-378
Test Outcome: test_the_loader_carries_the_path_root_of_a_doxygen_block[implementations] SEG-OUT-598F59A1C470
nodeid: tests/specification/test_config_path_root.py::test_the_loader_carries_the_path_root_of_a_doxygen_block[implementations]
result: passed
Test Outcome: test_the_loader_carries_the_path_root_of_a_doxygen_block[specifications] SEG-OUT-0129B6A77689
nodeid: tests/specification/test_config_path_root.py::test_the_loader_carries_the_path_root_of_a_doxygen_block[specifications]
result: passed

tests/specification/test_config_reader_shapes.py

Test Outcome: test_a_reader_may_name_its_own_repository SEG-OUT-392442C5961C
nodeid: tests/specification/test_config_reader_shapes.py::test_a_reader_may_name_its_own_repository
result: passed
reports: SEG-TS-176
Test Outcome: test_a_source_directory_and_a_source_map_exclude_each_other SEG-OUT-B376B3655ED5
nodeid: tests/specification/test_config_reader_shapes.py::test_a_source_directory_and_a_source_map_exclude_each_other
result: passed
reports: SEG-TS-179
Test Outcome: test_the_doxygen_prefix_is_carried_for_each_output SEG-OUT-D2B560AE8B52
nodeid: tests/specification/test_config_reader_shapes.py::test_the_doxygen_prefix_is_carried_for_each_output
result: passed
reports: SEG-TS-177
Test Outcome: test_the_parent_field_is_carried SEG-OUT-9BAB3D140F82
nodeid: tests/specification/test_config_reader_shapes.py::test_the_parent_field_is_carried
result: passed
reports: SEG-TS-174
Test Outcome: test_the_source_map_is_carried SEG-OUT-6F74FB75D53B
nodeid: tests/specification/test_config_reader_shapes.py::test_the_source_map_is_carried
result: passed
reports: SEG-TS-178
Test Outcome: test_the_types_of_test_cases_and_implementations_are_carried SEG-OUT-23DE4BD20A2A
nodeid: tests/specification/test_config_reader_shapes.py::test_the_types_of_test_cases_and_implementations_are_carried
result: passed
reports: SEG-TS-175

tests/specification/test_config_unknown_keys.py

Test Outcome: test_a_file_that_holds_only_known_keys_loads SEG-OUT-A03662ADB460
nodeid: tests/specification/test_config_unknown_keys.py::test_a_file_that_holds_only_known_keys_loads
result: passed
reports: SEG-TS-422
Test Outcome: test_a_key_at_the_top_of_the_file_that_is_not_known_is_refused[Case] SEG-OUT-FA07388AD3BB
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_at_the_top_of_the_file_that_is_not_known_is_refused[Case]
result: passed
Test Outcome: test_a_key_at_the_top_of_the_file_that_is_not_known_is_refused[cases] SEG-OUT-C6D6F120D28B
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_at_the_top_of_the_file_that_is_not_known_is_refused[cases]
result: passed
Test Outcome: test_a_key_at_the_top_of_the_file_that_is_not_known_is_refused[implementations] SEG-OUT-EE506B322FB1
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_at_the_top_of_the_file_that_is_not_known_is_refused[implementations]
result: passed
Test Outcome: test_a_key_at_the_top_of_the_file_that_is_not_known_is_refused[repository] SEG-OUT-7F60B88058A5
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_at_the_top_of_the_file_that_is_not_known_is_refused[repository]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-doxygen_prefix] SEG-OUT-CA8DB658B29F
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-doxygen_prefix]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-need-id] SEG-OUT-72FC7FF5E145
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-need-id]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-need_ids] SEG-OUT-BEB7B7CFA4D9
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-need_ids]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-path_root] SEG-OUT-C6294AAD89E4
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-path_root]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-source-map] SEG-OUT-9E6FC690D51C
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[implementations-source-map]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-doxygen-prefix] SEG-OUT-1F8772C8AC4D
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-doxygen-prefix]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-need-ids] SEG-OUT-A70F0E7B2DD6
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-need-ids]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-parent_field] SEG-OUT-CE57A0ED5C45
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-parent_field]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-path-root] SEG-OUT-B0049D94DB07
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-path-root]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-source_map] SEG-OUT-BAA2A0A8A240
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[requirements-source_map]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-doxygen_prefix] SEG-OUT-71C7136849D3
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-doxygen_prefix]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-need-ids] SEG-OUT-17656A7EE18D
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-need-ids]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-parent-field] SEG-OUT-926EFECEEDF0
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-parent-field]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-path_root] SEG-OUT-50F3006AFE7B
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-path_root]
result: passed
Test Outcome: test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-source] SEG-OUT-443D652F7E40
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_a_reader_block_that_is_not_known_is_refused[specifications-source]
result: passed
Test Outcome: test_a_key_of_the_producer_block_that_is_not_known_is_refused[Repository] SEG-OUT-C6C37FD11220
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_the_producer_block_that_is_not_known_is_refused[Repository]
result: passed
Test Outcome: test_a_key_of_the_producer_block_that_is_not_known_is_refused[implementation] SEG-OUT-84267CF02045
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_the_producer_block_that_is_not_known_is_refused[implementation]
result: passed
Test Outcome: test_a_key_of_the_producer_block_that_is_not_known_is_refused[outputs] SEG-OUT-37A0ADFFB9DA
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_the_producer_block_that_is_not_known_is_refused[outputs]
result: passed
Test Outcome: test_a_key_of_the_producer_block_that_is_not_known_is_refused[roots] SEG-OUT-79C6DB5CA2CE
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_the_producer_block_that_is_not_known_is_refused[roots]
result: passed
Test Outcome: test_a_key_of_the_producer_block_that_is_not_known_is_refused[types] SEG-OUT-22F0FDA00BFC
nodeid: tests/specification/test_config_unknown_keys.py::test_a_key_of_the_producer_block_that_is_not_known_is_refused[types]
result: passed
Test Outcome: test_a_mistyped_key_stops_the_command_line_with_exit_status_2 SEG-OUT-EB43497E6740
nodeid: tests/specification/test_config_unknown_keys.py::test_a_mistyped_key_stops_the_command_line_with_exit_status_2
result: passed
reports: SEG-TS-424
Test Outcome: test_a_producer_that_names_a_run_keeps_its_own_refusal[nope] SEG-OUT-D481C1B6C2C1
nodeid: tests/specification/test_config_unknown_keys.py::test_a_producer_that_names_a_run_keeps_its_own_refusal[nope]
result: passed
Test Outcome: test_a_producer_that_names_a_run_keeps_its_own_refusal[run0] SEG-OUT-14B8BE6A29C3
nodeid: tests/specification/test_config_unknown_keys.py::test_a_producer_that_names_a_run_keeps_its_own_refusal[run0]
result: passed
Test Outcome: test_a_producer_that_names_a_run_keeps_its_own_refusal[run1] SEG-OUT-D39A709B77F0
nodeid: tests/specification/test_config_unknown_keys.py::test_a_producer_that_names_a_run_keeps_its_own_refusal[run1]
result: passed

tests/specification/test_confirming_outcomes.py

Test Outcome: test_an_outcome_counts_only_with_both_a_confirms_and_a_witnesses_edge SEG-OUT-8AA6559A6B5D
nodeid: tests/specification/test_confirming_outcomes.py::test_an_outcome_counts_only_with_both_a_confirms_and_a_witnesses_edge
result: passed
reports: SEG-TS-362
Test Outcome: test_the_gate_reports_each_discarded_outcome_as_information SEG-OUT-B66D4EE76811
nodeid: tests/specification/test_confirming_outcomes.py::test_the_gate_reports_each_discarded_outcome_as_information
result: passed
reports: SEG-TS-363
Test Outcome: test_with_an_implementation_export_no_outcome_is_discarded SEG-OUT-C284736EC8C0
nodeid: tests/specification/test_confirming_outcomes.py::test_with_an_implementation_export_no_outcome_is_discarded
result: passed
reports: SEG-TS-365
Test Outcome: test_without_an_implementation_export_every_outcome_is_discarded_and_reported SEG-OUT-B9837E8FBA01
nodeid: tests/specification/test_confirming_outcomes.py::test_without_an_implementation_export_every_outcome_is_discarded_and_reported
result: passed
reports: SEG-TS-364

tests/specification/test_content_extractor.py

Test Outcome: test_a_bodyhash_covers_the_located_body SEG-OUT-961B8C94F758
nodeid: tests/specification/test_content_extractor.py::test_a_bodyhash_covers_the_located_body
result: passed
reports: SEG-TS-032
Test Outcome: test_a_location_outside_the_root_is_an_error_and_is_not_read SEG-OUT-977BC8079CA9
nodeid: tests/specification/test_content_extractor.py::test_a_location_outside_the_root_is_an_error_and_is_not_read
result: passed
reports: SEG-TS-029
Test Outcome: test_a_location_that_does_not_name_its_symbol_is_an_error_for_its_node SEG-OUT-DD4E15B46E50
nodeid: tests/specification/test_content_extractor.py::test_a_location_that_does_not_name_its_symbol_is_an_error_for_its_node
result: passed
reports: SEG-TS-042
Test Outcome: test_a_macros_apihash_covers_its_definition_head_and_its_comment SEG-OUT-448F24CE1FCD
nodeid: tests/specification/test_content_extractor.py::test_a_macros_apihash_covers_its_definition_head_and_its_comment
result: passed
reports: SEG-TS-031
Test Outcome: test_a_missing_documentation_comment_is_an_error_for_its_node SEG-OUT-B4D3BD78BEF6
nodeid: tests/specification/test_content_extractor.py::test_a_missing_documentation_comment_is_an_error_for_its_node
result: passed
reports: SEG-TS-036
Test Outcome: test_a_need_export_carrying_a_build_timestamp_is_refused_by_the_extractor SEG-OUT-03CA3CF863F1
nodeid: tests/specification/test_content_extractor.py::test_a_need_export_carrying_a_build_timestamp_is_refused_by_the_extractor
result: passed
reports: SEG-TS-026
Test Outcome: test_a_node_is_located_through_the_member_its_symbol_names SEG-OUT-BDD04078DD62
nodeid: tests/specification/test_content_extractor.py::test_a_node_is_located_through_the_member_its_symbol_names
result: passed
reports: SEG-TS-027
Test Outcome: test_a_spechash_covers_the_tests_documentation_comment SEG-OUT-1AB53F697DAF
nodeid: tests/specification/test_content_extractor.py::test_a_spechash_covers_the_tests_documentation_comment
result: passed
reports: SEG-TS-033
Test Outcome: test_a_test_specification_is_identified_by_its_need_identifier_verbatim SEG-OUT-A27FFE6DECFA
nodeid: tests/specification/test_content_extractor.py::test_a_test_specification_is_identified_by_its_need_identifier_verbatim
result: passed
reports: SEG-TS-023
Test Outcome: test_a_test_specifications_impl_anchor_names_the_test_file_and_function SEG-OUT-86427C742EA9
nodeid: tests/specification/test_content_extractor.py::test_a_test_specifications_impl_anchor_names_the_test_file_and_function
result: passed
reports: SEG-TS-041
Test Outcome: test_a_test_specifications_spec_anchor_names_the_test_file_and_function SEG-OUT-FE8C57A8291E
nodeid: tests/specification/test_content_extractor.py::test_a_test_specifications_spec_anchor_names_the_test_file_and_function
result: passed
reports: SEG-TS-040
Test Outcome: test_an_apihash_covers_a_declaration_and_the_comment_above_it SEG-OUT-91D746949065
nodeid: tests/specification/test_content_extractor.py::test_an_apihash_covers_a_declaration_and_the_comment_above_it
result: passed
reports: SEG-TS-030
Test Outcome: test_an_implementation_is_identified_by_its_need_identifier_verbatim SEG-OUT-A5357E29EA4D
nodeid: tests/specification/test_content_extractor.py::test_an_implementation_is_identified_by_its_need_identifier_verbatim
result: passed
reports: SEG-TS-022
Test Outcome: test_an_implementations_api_anchor_names_the_declaration_file_and_symbol SEG-OUT-6FE2E622417D
nodeid: tests/specification/test_content_extractor.py::test_an_implementations_api_anchor_names_the_declaration_file_and_symbol
result: passed
reports: SEG-TS-038
Test Outcome: test_an_implementations_body_anchor_names_the_body_file_and_symbol SEG-OUT-E36505EA9E6F
nodeid: tests/specification/test_content_extractor.py::test_an_implementations_body_anchor_names_the_body_file_and_symbol
result: passed
reports: SEG-TS-039
Test Outcome: test_an_implhash_covers_the_tests_located_body SEG-OUT-CA1ACF7196C3
nodeid: tests/specification/test_content_extractor.py::test_an_implhash_covers_the_tests_located_body
result: passed
reports: SEG-TS-034
Test Outcome: test_an_unlocatable_or_ambiguous_symbol_is_an_error_for_its_node SEG-OUT-57092FDD8773
nodeid: tests/specification/test_content_extractor.py::test_an_unlocatable_or_ambiguous_symbol_is_an_error_for_its_node
result: passed
reports: SEG-TS-028
Test Outcome: test_implements_edges_come_from_satisfies_links SEG-OUT-A7ED5022458C
nodeid: tests/specification/test_content_extractor.py::test_implements_edges_come_from_satisfies_links
result: passed
reports: SEG-TS-024
Test Outcome: test_no_hashed_byte_comes_from_the_doxygen_output_text SEG-OUT-E6ED1BF634D1
nodeid: tests/specification/test_content_extractor.py::test_no_hashed_byte_comes_from_the_doxygen_output_text
result: passed
reports: SEG-TS-037
Test Outcome: test_spans_are_whole_lines_with_their_terminators SEG-OUT-A48E1C3C0D81
nodeid: tests/specification/test_content_extractor.py::test_spans_are_whole_lines_with_their_terminators
result: passed
reports: SEG-TS-035
Test Outcome: test_the_implementation_inputs_are_loaded_relative_to_the_file SEG-OUT-09DDA4E11198
nodeid: tests/specification/test_content_extractor.py::test_the_implementation_inputs_are_loaded_relative_to_the_file
result: passed
reports: SEG-TS-044
Test Outcome: test_the_specification_inputs_are_loaded_relative_to_the_file SEG-OUT-0CB8B79DF4A3
nodeid: tests/specification/test_content_extractor.py::test_the_specification_inputs_are_loaded_relative_to_the_file
result: passed
reports: SEG-TS-043
Test Outcome: test_verifies_edges_come_from_verifies_links SEG-OUT-C9CF29CBA82F
nodeid: tests/specification/test_content_extractor.py::test_verifies_edges_come_from_verifies_links
result: passed
reports: SEG-TS-025

tests/specification/test_content_extractor_need_ids.py

Test Outcome: test_a_list_of_need_identifiers_alone_selects_the_needs_it_names SEG-OUT-030B96CD250F
nodeid: tests/specification/test_content_extractor_need_ids.py::test_a_list_of_need_identifiers_alone_selects_the_needs_it_names
result: passed
reports: SEG-TS-425
Test Outcome: test_a_listed_identifier_of_a_need_of_another_type_is_refused SEG-OUT-7B4D416CBE1C
nodeid: tests/specification/test_content_extractor_need_ids.py::test_a_listed_identifier_of_a_need_of_another_type_is_refused
result: passed
reports: SEG-TS-430
Test Outcome: test_a_listed_identifier_that_names_no_need_is_refused SEG-OUT-6A2F33F628BC
nodeid: tests/specification/test_content_extractor_need_ids.py::test_a_listed_identifier_that_names_no_need_is_refused
result: passed
reports: SEG-TS-429
Test Outcome: test_a_need_must_be_listed_and_of_a_configured_type_to_be_read SEG-OUT-52C4B1188E94
nodeid: tests/specification/test_content_extractor_need_ids.py::test_a_need_must_be_listed_and_of_a_configured_type_to_be_read
result: passed
reports: SEG-TS-427
Test Outcome: test_a_need_outside_the_list_is_not_refused SEG-OUT-47A07FC4DE02
nodeid: tests/specification/test_content_extractor_need_ids.py::test_a_need_outside_the_list_is_not_refused
result: passed
reports: SEG-TS-432
Test Outcome: test_every_listed_identifier_that_names_no_need_is_named_in_one_error SEG-OUT-D593DB60B114
nodeid: tests/specification/test_content_extractor_need_ids.py::test_every_listed_identifier_that_names_no_need_is_named_in_one_error
result: passed
reports: SEG-TS-431
Test Outcome: test_need_types_alone_select_the_needs_of_those_types SEG-OUT-EBFCA3F8778D
nodeid: tests/specification/test_content_extractor_need_ids.py::test_need_types_alone_select_the_needs_of_those_types
result: passed
reports: SEG-TS-426
Test Outcome: test_without_types_and_without_a_list_every_need_is_read SEG-OUT-E1EA470D5B11
nodeid: tests/specification/test_content_extractor_need_ids.py::test_without_types_and_without_a_list_every_need_is_read
result: passed
reports: SEG-TS-428

tests/specification/test_content_extractor_no_body.py

Test Outcome: test_a_member_with_no_recorded_body_is_an_error_for_its_node SEG-OUT-E3C585B3680B
nodeid: tests/specification/test_content_extractor_no_body.py::test_a_member_with_no_recorded_body_is_an_error_for_its_node
result: passed
reports: SEG-TS-361

tests/specification/test_content_extractor_path_root.py

Test Outcome: test_a_path_root_is_put_in_front_of_the_path_the_doxygen_output_names SEG-OUT-3DCEEDA81BA4
nodeid: tests/specification/test_content_extractor_path_root.py::test_a_path_root_is_put_in_front_of_the_path_the_doxygen_output_names
result: passed
reports: SEG-TS-379
Test Outcome: test_a_path_root_on_the_specifications_block_locates_a_test SEG-OUT-BB7F900529EC
nodeid: tests/specification/test_content_extractor_path_root.py::test_a_path_root_on_the_specifications_block_locates_a_test
result: passed
reports: SEG-TS-385
Test Outcome: test_a_path_root_that_leads_outside_the_repository_is_an_error_for_the_node[absolute] SEG-OUT-C367900927B9
nodeid: tests/specification/test_content_extractor_path_root.py::test_a_path_root_that_leads_outside_the_repository_is_an_error_for_the_node[absolute]
result: passed
Test Outcome: test_a_path_root_that_leads_outside_the_repository_is_an_error_for_the_node[climbing] SEG-OUT-547784B5AD31
nodeid: tests/specification/test_content_extractor_path_root.py::test_a_path_root_that_leads_outside_the_repository_is_an_error_for_the_node[climbing]
result: passed
Test Outcome: test_a_path_root_that_leads_outside_the_repository_is_an_error_for_the_node[parent] SEG-OUT-65C9467F5DEC
nodeid: tests/specification/test_content_extractor_path_root.py::test_a_path_root_that_leads_outside_the_repository_is_an_error_for_the_node[parent]
result: passed
Test Outcome: test_a_trailing_separator_of_the_path_root_is_optional SEG-OUT-90C1625ADFA9
nodeid: tests/specification/test_content_extractor_path_root.py::test_a_trailing_separator_of_the_path_root_is_optional
result: passed
reports: SEG-TS-381
Test Outcome: test_an_anchor_names_the_path_inside_the_repository_after_the_root_is_put_in_front SEG-OUT-12CFB3D291AB
nodeid: tests/specification/test_content_extractor_path_root.py::test_an_anchor_names_the_path_inside_the_repository_after_the_root_is_put_in_front
result: passed
reports: SEG-TS-386
Test Outcome: test_an_empty_path_root_is_the_same_as_none[empty-text] SEG-OUT-69E89EE4E6C1
nodeid: tests/specification/test_content_extractor_path_root.py::test_an_empty_path_root_is_the_same_as_none[empty-text]
result: passed
Test Outcome: test_an_empty_path_root_is_the_same_as_none[null] SEG-OUT-30A333F8A885
nodeid: tests/specification/test_content_extractor_path_root.py::test_an_empty_path_root_is_the_same_as_none[null]
result: passed
Test Outcome: test_the_bytes_behind_a_hash_are_read_from_the_joined_path SEG-OUT-22D92C8DD826
nodeid: tests/specification/test_content_extractor_path_root.py::test_the_bytes_behind_a_hash_are_read_from_the_joined_path
result: passed
reports: SEG-TS-388
Test Outcome: test_the_prefix_is_removed_first_and_then_the_path_root_is_put_in_front SEG-OUT-E7113F042347
nodeid: tests/specification/test_content_extractor_path_root.py::test_the_prefix_is_removed_first_and_then_the_path_root_is_put_in_front
result: passed
reports: SEG-TS-380
Test Outcome: test_the_prefix_rules_still_hold_when_a_path_root_is_configured SEG-OUT-4EF88EC9F8DE
nodeid: tests/specification/test_content_extractor_path_root.py::test_the_prefix_rules_still_hold_when_a_path_root_is_configured
result: passed
reports: SEG-TS-387
Test Outcome: test_the_test_module_is_compared_with_the_path_after_the_root_is_put_in_front SEG-OUT-D87B99E4E255
nodeid: tests/specification/test_content_extractor_path_root.py::test_the_test_module_is_compared_with_the_path_after_the_root_is_put_in_front
result: passed
reports: SEG-TS-384

tests/specification/test_content_extractor_prefix_and_module.py

Test Outcome: test_a_path_whose_remainder_after_the_prefix_is_not_a_relative_path_is_an_error SEG-OUT-A26DE01522BA
nodeid: tests/specification/test_content_extractor_prefix_and_module.py::test_a_path_whose_remainder_after_the_prefix_is_not_a_relative_path_is_an_error
result: passed
reports: SEG-TS-327
Test Outcome: test_a_shared_symbol_with_a_prefix_that_leaves_no_path_gets_the_prefix_error SEG-OUT-6B702CA83F5A
nodeid: tests/specification/test_content_extractor_prefix_and_module.py::test_a_shared_symbol_with_a_prefix_that_leaves_no_path_gets_the_prefix_error
result: passed
reports: SEG-TS-334
Test Outcome: test_a_test_module_that_is_absent_null_or_empty_names_no_module SEG-OUT-7ED98046C961
nodeid: tests/specification/test_content_extractor_prefix_and_module.py::test_a_test_module_that_is_absent_null_or_empty_names_no_module
result: passed
reports: SEG-TS-329
Test Outcome: test_a_test_module_that_is_not_text_is_an_error_for_that_need[7] SEG-OUT-2B22E928B2A7
nodeid: tests/specification/test_content_extractor_prefix_and_module.py::test_a_test_module_that_is_not_text_is_an_error_for_that_need[7]
result: passed
Test Outcome: test_a_test_module_that_is_not_text_is_an_error_for_that_need[True] SEG-OUT-2535FA86BC6E
nodeid: tests/specification/test_content_extractor_prefix_and_module.py::test_a_test_module_that_is_not_text_is_an_error_for_that_need[True]
result: passed
Test Outcome: test_a_test_module_that_is_not_text_is_an_error_for_that_need[module1] SEG-OUT-C218A6BFEBAB
nodeid: tests/specification/test_content_extractor_prefix_and_module.py::test_a_test_module_that_is_not_text_is_an_error_for_that_need[module1]
result: passed
Test Outcome: test_a_test_module_that_is_not_text_is_an_error_for_that_need[module2] SEG-OUT-D4C4DFA7C7AB
nodeid: tests/specification/test_content_extractor_prefix_and_module.py::test_a_test_module_that_is_not_text_is_an_error_for_that_need[module2]
result: passed
Test Outcome: test_case_sync_names_every_node_whose_path_does_not_fit_the_prefix SEG-OUT-B4AC75A61F26
nodeid: tests/specification/test_content_extractor_prefix_and_module.py::test_case_sync_names_every_node_whose_path_does_not_fit_the_prefix
result: passed
reports: SEG-TS-328

tests/specification/test_content_repository_reads.py

Test Outcome: test_case_sync_writes_nothing_in_the_content_repository SEG-OUT-429B2970E96A
nodeid: tests/specification/test_content_repository_reads.py::test_case_sync_writes_nothing_in_the_content_repository
result: passed
reports: SEG-TS-216
Test Outcome: test_edge_affirm_writes_nothing_in_the_content_repository SEG-OUT-2E3572398DEB
nodeid: tests/specification/test_content_repository_reads.py::test_edge_affirm_writes_nothing_in_the_content_repository
result: passed
reports: SEG-TS-217

tests/specification/test_dangling_edge.py

Test Outcome: test_a_never_affirmed_edge_to_an_absent_node_is_broken_after_the_derivation_and_the_build SEG-OUT-46472EF10D37
nodeid: tests/specification/test_dangling_edge.py::test_a_never_affirmed_edge_to_an_absent_node_is_broken_after_the_derivation_and_the_build
result: passed
reports: SEG-TS-106
Test Outcome: test_case_sync_writes_a_dangling_edge_as_broken_and_writes_pending_when_the_node_returns SEG-OUT-E81994F5E964
nodeid: tests/specification/test_dangling_edge.py::test_case_sync_writes_a_dangling_edge_as_broken_and_writes_pending_when_the_node_returns
result: passed
reports: SEG-TS-112
Test Outcome: test_graph_status_counts_a_dangling_confirms_edge_and_exits_1 SEG-OUT-DC545384C512
nodeid: tests/specification/test_dangling_edge.py::test_graph_status_counts_a_dangling_confirms_edge_and_exits_1
result: passed
reports: SEG-TS-109
Test Outcome: test_graph_status_lists_a_dangling_strong_edge_as_broken_and_exits_1 SEG-OUT-CF38670990F8
nodeid: tests/specification/test_dangling_edge.py::test_graph_status_lists_a_dangling_strong_edge_as_broken_and_exits_1
result: passed
reports: SEG-TS-107
Test Outcome: test_graph_status_lists_an_affirmed_edge_whose_endpoint_left_as_broken SEG-OUT-A3C3EEA8674A
nodeid: tests/specification/test_dangling_edge.py::test_graph_status_lists_an_affirmed_edge_whose_endpoint_left_as_broken
result: passed
reports: SEG-TS-108
Test Outcome: test_graph_status_lists_pending_strong_edges_as_pending_and_exits_0 SEG-OUT-D432132EE89C
nodeid: tests/specification/test_dangling_edge.py::test_graph_status_lists_pending_strong_edges_as_pending_and_exits_0
result: passed
reports: SEG-TS-110
Test Outcome: test_the_builder_keeps_a_broken_edge_that_was_never_affirmed SEG-OUT-EDFFE42FD6A7
nodeid: tests/specification/test_dangling_edge.py::test_the_builder_keeps_a_broken_edge_that_was_never_affirmed
result: passed
reports: SEG-TS-104
Test Outcome: test_the_builder_still_resets_other_unaffirmed_edges_to_pending SEG-OUT-585784A060FC
nodeid: tests/specification/test_dangling_edge.py::test_the_builder_still_resets_other_unaffirmed_edges_to_pending
result: passed
reports: SEG-TS-105
Test Outcome: test_the_gate_names_a_broken_strong_edge_as_broken SEG-OUT-1D8C77C7B323
nodeid: tests/specification/test_dangling_edge.py::test_the_gate_names_a_broken_strong_edge_as_broken
result: passed
reports: SEG-TS-111

tests/specification/test_drift.py

Test Outcome: test_every_edge_touching_an_absent_node_is_broken SEG-OUT-0FDAD200700B
nodeid: tests/specification/test_drift.py::test_every_edge_touching_an_absent_node_is_broken
result: passed
reports: SEG-TS-010

tests/specification/test_edge_affirm_unreadable_repository.py

Test Outcome: test_a_refused_edge_affirm_over_two_repositories_writes_nothing[from-objects] SEG-OUT-83A300C68158
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_over_two_repositories_writes_nothing[from-objects]
result: passed
Test Outcome: test_a_refused_edge_affirm_over_two_repositories_writes_nothing[from-stand-in] SEG-OUT-F74AD8FCDF54
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_over_two_repositories_writes_nothing[from-stand-in]
result: passed
Test Outcome: test_a_refused_edge_affirm_over_two_repositories_writes_nothing[to-objects] SEG-OUT-D9BD2DD691FE
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_over_two_repositories_writes_nothing[to-objects]
result: passed
Test Outcome: test_a_refused_edge_affirm_over_two_repositories_writes_nothing[to-stand-in] SEG-OUT-5220B9F52E50
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_over_two_repositories_writes_nothing[to-stand-in]
result: passed
Test Outcome: test_a_refused_edge_affirm_writes_nothing[git-absent] SEG-OUT-53E4988F500F
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_writes_nothing[git-absent]
result: passed
Test Outcome: test_a_refused_edge_affirm_writes_nothing[missing-path] SEG-OUT-498D830BC2F0
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_writes_nothing[missing-path]
result: passed
Test Outcome: test_a_refused_edge_affirm_writes_nothing[not-a-repository] SEG-OUT-ECD1F8C261EC
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_writes_nothing[not-a-repository]
result: passed
Test Outcome: test_a_refused_edge_affirm_writes_nothing[objects] SEG-OUT-FA5DCBF626BB
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_writes_nothing[objects]
result: passed
Test Outcome: test_a_refused_edge_affirm_writes_nothing[stand-in] SEG-OUT-805BBFE18E6D
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_a_refused_edge_affirm_writes_nothing[stand-in]
result: passed
Test Outcome: test_edge_affirm_refuses_when_the_repository_cannot_be_read[git-absent] SEG-OUT-3B2ED612C9F8
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_refuses_when_the_repository_cannot_be_read[git-absent]
result: passed
Test Outcome: test_edge_affirm_refuses_when_the_repository_cannot_be_read[missing-path] SEG-OUT-CAC7862509AA
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_refuses_when_the_repository_cannot_be_read[missing-path]
result: passed
Test Outcome: test_edge_affirm_refuses_when_the_repository_cannot_be_read[not-a-repository] SEG-OUT-B7FBBA2D3508
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_refuses_when_the_repository_cannot_be_read[not-a-repository]
result: passed
Test Outcome: test_edge_affirm_refuses_when_the_repository_cannot_be_read[objects] SEG-OUT-C258D4A5D3B3
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_refuses_when_the_repository_cannot_be_read[objects]
result: passed
Test Outcome: test_edge_affirm_refuses_when_the_repository_cannot_be_read[stand-in] SEG-OUT-197FA2253E4F
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_refuses_when_the_repository_cannot_be_read[stand-in]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[git-absent] SEG-OUT-954AF9D3FC46
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[git-absent]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[missing-path] SEG-OUT-576A3C8906A8
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[missing-path]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[not-a-repository] SEG-OUT-975B13711764
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[not-a-repository]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[objects] SEG-OUT-90DD274D34DE
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[objects]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[stand-in] SEG-OUT-65F1DB20D83A
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_keeps_a_held_extraction_revision[stand-in]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[git-absent] SEG-OUT-2C18DCE35A79
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[git-absent]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[missing-path] SEG-OUT-5A71D424E0E7
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[missing-path]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[not-a-repository] SEG-OUT-F01C77B97B88
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[not-a-repository]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[objects] SEG-OUT-269110904988
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[objects]
result: passed
Test Outcome: test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[stand-in] SEG-OUT-A855DBA89C76
nodeid: tests/specification/test_edge_affirm_unreadable_repository.py::test_edge_affirm_with_a_given_revision_reads_nothing_and_affirms[stand-in]
result: passed

tests/specification/test_edge_provenance_exit_and_writes.py

Test Outcome: test_edge_show_changes_nothing_in_a_case_repository SEG-OUT-98ACD9776FDB
nodeid: tests/specification/test_edge_provenance_exit_and_writes.py::test_edge_show_changes_nothing_in_a_case_repository
result: passed
reports: SEG-TS-284
Test Outcome: test_edge_show_changes_nothing_in_a_case_that_is_a_worktree SEG-OUT-E4C168398CE5
nodeid: tests/specification/test_edge_provenance_exit_and_writes.py::test_edge_show_changes_nothing_in_a_case_that_is_a_worktree
result: passed
reports: SEG-TS-285
Test Outcome: test_the_history_never_changes_the_exit_status_of_edge_show SEG-OUT-308B71CC5420
nodeid: tests/specification/test_edge_provenance_exit_and_writes.py::test_the_history_never_changes_the_exit_status_of_edge_show
result: passed
reports: SEG-TS-283

tests/specification/test_edge_provenance_identity.py

Test Outcome: test_edge_show_reports_an_author_that_is_not_the_committer SEG-OUT-BFF1FFD0016C
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_an_author_that_is_not_the_committer
result: passed
reports: SEG-TS-263
Test Outcome: test_edge_show_reports_each_signed_off_by_line_as_written_in_order SEG-OUT-421D2755EFFC
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_each_signed_off_by_line_as_written_in_order
result: passed
reports: SEG-TS-265
Test Outcome: test_edge_show_reports_every_affirmed_edge_of_a_selection_with_no_option SEG-OUT-75944342CD38
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_every_affirmed_edge_of_a_selection_with_no_option
result: passed
reports: SEG-TS-262
Test Outcome: test_edge_show_reports_no_author_for_the_same_person_with_another_author_date SEG-OUT-C4FAEA4572C2
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_no_author_for_the_same_person_with_another_author_date
result: passed
reports: SEG-TS-291
Test Outcome: test_edge_show_reports_no_author_when_the_author_is_the_committer SEG-OUT-102CD7745236
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_no_author_when_the_author_is_the_committer
result: passed
reports: SEG-TS-264
Test Outcome: test_edge_show_reports_no_signed_off_by_line_when_the_message_has_none SEG-OUT-1F0ABE2EF41A
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_no_signed_off_by_line_when_the_message_has_none
result: passed
reports: SEG-TS-266
Test Outcome: test_edge_show_reports_the_committer_and_the_commit_date_as_the_identity SEG-OUT-89870284150E
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_the_committer_and_the_commit_date_as_the_identity
result: passed
reports: SEG-TS-260
Test Outcome: test_edge_show_reports_the_committer_as_recorded_and_applies_no_mailmap SEG-OUT-9FAF3CF4646F
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_the_committer_as_recorded_and_applies_no_mailmap
result: passed
reports: SEG-TS-286
Test Outcome: test_edge_show_reports_the_identifier_and_the_subject_of_the_recording_commit SEG-OUT-4B1404BC514F
nodeid: tests/specification/test_edge_provenance_identity.py::test_edge_show_reports_the_identifier_and_the_subject_of_the_recording_commit
result: passed
reports: SEG-TS-261

tests/specification/test_edge_provenance_no_answer.py

Test Outcome: test_edge_show_does_not_fall_back_to_an_earlier_affirmation_of_a_draft_edge SEG-OUT-AB0BEA2147F4
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_does_not_fall_back_to_an_earlier_affirmation_of_a_draft_edge
result: passed
reports: SEG-TS-277
Test Outcome: test_edge_show_gives_no_signature_and_no_shallow_flag_without_a_commit SEG-OUT-7C3A8DCF5559
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_gives_no_signature_and_no_shallow_flag_without_a_commit
result: passed
reports: SEG-TS-290
Test Outcome: test_edge_show_never_answers_from_the_repository_that_holds_the_case SEG-OUT-A7BB36E00416
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_never_answers_from_the_repository_that_holds_the_case
result: passed
reports: SEG-TS-279
Test Outcome: test_edge_show_reads_the_history_of_a_case_that_is_a_worktree_of_another_repository SEG-OUT-27C5F698E738
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_reads_the_history_of_a_case_that_is_a_worktree_of_another_repository
result: passed
reports: SEG-TS-281
Test Outcome: test_edge_show_reports_a_draft_event_as_not_committed SEG-OUT-AD4C14CA3C2B
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_reports_a_draft_event_as_not_committed
result: passed
reports: SEG-TS-276
Test Outcome: test_edge_show_reports_a_history_that_cannot_be_read_as_not_available SEG-OUT-58A732BBD020
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_reports_a_history_that_cannot_be_read_as_not_available
result: passed
reports: SEG-TS-280
Test Outcome: test_edge_show_reports_a_shallow_history_with_the_identity SEG-OUT-B6157DA083B7
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_reports_a_shallow_history_with_the_identity
result: passed
reports: SEG-TS-282
Test Outcome: test_edge_show_reports_an_event_in_a_repository_with_no_commit_as_not_committed SEG-OUT-4CB038F42C17
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_reports_an_event_in_a_repository_with_no_commit_as_not_committed
result: passed
reports: SEG-TS-289
Test Outcome: test_edge_show_reports_the_history_of_a_case_with_no_repository_as_not_available SEG-OUT-FEDB01B3AAAB
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_reports_the_history_of_a_case_with_no_repository_as_not_available
result: passed
reports: SEG-TS-278
Test Outcome: test_edge_show_reports_the_provenance_of_an_edge_that_is_no_longer_active SEG-OUT-6C4DFC91AD34
nodeid: tests/specification/test_edge_provenance_no_answer.py::test_edge_show_reports_the_provenance_of_an_edge_that_is_no_longer_active
result: passed
reports: SEG-TS-288

tests/specification/test_edge_provenance_recording_commit.py

Test Outcome: test_edge_show_does_not_take_a_reason_that_names_an_event_for_the_event SEG-OUT-E2E8DEFCD160
nodeid: tests/specification/test_edge_provenance_recording_commit.py::test_edge_show_does_not_take_a_reason_that_names_an_event_for_the_event
result: passed
reports: SEG-TS-270
Test Outcome: test_edge_show_matches_the_whole_identifier_of_an_event SEG-OUT-A352009CFC82
nodeid: tests/specification/test_edge_provenance_recording_commit.py::test_edge_show_matches_the_whole_identifier_of_an_event
result: passed
reports: SEG-TS-269
Test Outcome: test_edge_show_names_one_commit_for_every_event_that_the_commit_adds SEG-OUT-E24A286ABB5E
nodeid: tests/specification/test_edge_provenance_recording_commit.py::test_edge_show_names_one_commit_for_every_event_that_the_commit_adds
result: passed
reports: SEG-TS-268
Test Outcome: test_edge_show_names_the_commit_of_the_last_affirmation_of_an_edge SEG-OUT-0DBCF608B515
nodeid: tests/specification/test_edge_provenance_recording_commit.py::test_edge_show_names_the_commit_of_the_last_affirmation_of_an_edge
result: passed
reports: SEG-TS-271
Test Outcome: test_edge_show_names_the_earliest_commit_for_an_event_removed_and_added_again SEG-OUT-60FB781E24D5
nodeid: tests/specification/test_edge_provenance_recording_commit.py::test_edge_show_names_the_earliest_commit_for_an_event_removed_and_added_again
result: passed
reports: SEG-TS-287
Test Outcome: test_edge_show_names_the_earliest_commit_that_holds_the_event_not_the_one_that_made_the_file SEG-OUT-69AE1D5EC81A
nodeid: tests/specification/test_edge_provenance_recording_commit.py::test_edge_show_names_the_earliest_commit_that_holds_the_event_not_the_one_that_made_the_file
result: passed
reports: SEG-TS-267
Test Outcome: test_edge_show_names_the_new_commit_after_an_amend SEG-OUT-C1E59E86AF4F
nodeid: tests/specification/test_edge_provenance_recording_commit.py::test_edge_show_names_the_new_commit_after_an_amend
result: passed
reports: SEG-TS-272

tests/specification/test_edge_provenance_signature.py

Test Outcome: test_edge_show_presents_the_identity_as_recorded_and_never_as_verified SEG-OUT-A6E062B44741
nodeid: tests/specification/test_edge_provenance_signature.py::test_edge_show_presents_the_identity_as_recorded_and_never_as_verified
result: passed
reports: SEG-TS-275
Test Outcome: test_edge_show_reports_an_unsigned_commit_as_signature_none SEG-OUT-D50031BF9883
nodeid: tests/specification/test_edge_provenance_signature.py::test_edge_show_reports_an_unsigned_commit_as_signature_none
result: passed
reports: SEG-TS-273
Test Outcome: test_edge_show_reports_each_signature_status_as_git_gives_it SEG-OUT-A264F1E3354A
nodeid: tests/specification/test_edge_provenance_signature.py::test_edge_show_reports_each_signature_status_as_git_gives_it
result: passed
reports: SEG-TS-274

tests/specification/test_edge_selection_evidence_edges.py

Test Outcome: test_a_requirement_with_no_refiner_selects_its_verifies_and_implements_edges SEG-OUT-AB88B69F97D6
nodeid: tests/specification/test_edge_selection_evidence_edges.py::test_a_requirement_with_no_refiner_selects_its_verifies_and_implements_edges
result: passed
reports: SEG-TS-373
Test Outcome: test_a_subtree_selection_shows_only_refines_verifies_and_implements_edges SEG-OUT-2A4B80FB2C33
nodeid: tests/specification/test_edge_selection_evidence_edges.py::test_a_subtree_selection_shows_only_refines_verifies_and_implements_edges
result: passed
reports: SEG-TS-366
Test Outcome: test_case_remove_below_a_node_that_is_not_a_requirement_removes_nothing SEG-OUT-45F38BFBD410
nodeid: tests/specification/test_edge_selection_evidence_edges.py::test_case_remove_below_a_node_that_is_not_a_requirement_removes_nothing
result: passed
reports: SEG-TS-371
Test Outcome: test_case_remove_with_a_subtree_selection_removes_only_the_three_kinds_of_a_subtree SEG-OUT-6279CA4A1CE3
nodeid: tests/specification/test_edge_selection_evidence_edges.py::test_case_remove_with_a_subtree_selection_removes_only_the_three_kinds_of_a_subtree
result: passed
reports: SEG-TS-367
Test Outcome: test_edge_affirm_below_a_node_that_is_not_a_requirement_affirms_nothing SEG-OUT-0BD42558B77F
nodeid: tests/specification/test_edge_selection_evidence_edges.py::test_edge_affirm_below_a_node_that_is_not_a_requirement_affirms_nothing
result: passed
reports: SEG-TS-370
Test Outcome: test_edge_show_below_a_node_that_is_not_a_requirement_matches_nothing SEG-OUT-58F532BB1ECC
nodeid: tests/specification/test_edge_selection_evidence_edges.py::test_edge_show_below_a_node_that_is_not_a_requirement_matches_nothing
result: passed
reports: SEG-TS-369
Test Outcome: test_select_admits_no_edge_of_a_kind_outside_the_three_for_a_subtree SEG-OUT-03D3CAE62971
nodeid: tests/specification/test_edge_selection_evidence_edges.py::test_select_admits_no_edge_of_a_kind_outside_the_three_for_a_subtree
result: passed
reports: SEG-TS-368
Test Outcome: test_select_by_the_subtree_of_a_node_that_is_not_a_requirement_returns_no_edge SEG-OUT-311AF1F6086A
nodeid: tests/specification/test_edge_selection_evidence_edges.py::test_select_by_the_subtree_of_a_node_that_is_not_a_requirement_returns_no_edge
result: passed
reports: SEG-TS-372

tests/specification/test_edge_selection_subtree.py

Test Outcome: test_a_leaf_requirement_selects_its_verifies_and_implements_edges_and_no_refines_edge SEG-OUT-5C52C0EB9A9C
nodeid: tests/specification/test_edge_selection_subtree.py::test_a_leaf_requirement_selects_its_verifies_and_implements_edges_and_no_refines_edge
result: passed
reports: SEG-TS-341
Test Outcome: test_a_requirement_outside_the_subtree_adds_no_edge SEG-OUT-10F44EE40797
nodeid: tests/specification/test_edge_selection_subtree.py::test_a_requirement_outside_the_subtree_adds_no_edge
result: passed
reports: SEG-TS-336
Test Outcome: test_a_subtree_below_a_requirement_that_is_not_a_top_leaves_out_its_own_refines_edge SEG-OUT-3262788DF53E
nodeid: tests/specification/test_edge_selection_subtree.py::test_a_subtree_below_a_requirement_that_is_not_a_top_leaves_out_its_own_refines_edge
result: passed
reports: SEG-TS-342
Test Outcome: test_a_subtree_selection_for_an_unknown_requirement_matches_nothing SEG-OUT-6EAC77F5D8E2
nodeid: tests/specification/test_edge_selection_subtree.py::test_a_subtree_selection_for_an_unknown_requirement_matches_nothing
result: passed
reports: SEG-TS-343
Test Outcome: test_a_verifies_or_implements_edge_is_in_the_subtree_by_the_requirement_it_names SEG-OUT-F556FA3F8A04
nodeid: tests/specification/test_edge_selection_subtree.py::test_a_verifies_or_implements_edge_is_in_the_subtree_by_the_requirement_it_names
result: passed
reports: SEG-TS-340
Test Outcome: test_case_remove_removes_only_the_edges_inside_the_subtree SEG-OUT-452496083EBC
nodeid: tests/specification/test_edge_selection_subtree.py::test_case_remove_removes_only_the_edges_inside_the_subtree
result: passed
reports: SEG-TS-339
Test Outcome: test_edge_affirm_affirms_only_the_edges_inside_the_subtree SEG-OUT-37ED106E5B7E
nodeid: tests/specification/test_edge_selection_subtree.py::test_edge_affirm_affirms_only_the_edges_inside_the_subtree
result: passed
reports: SEG-TS-338
Test Outcome: test_edge_show_lists_a_refines_edge_only_when_both_ends_are_in_the_subtree SEG-OUT-11759F05A1BF
nodeid: tests/specification/test_edge_selection_subtree.py::test_edge_show_lists_a_refines_edge_only_when_both_ends_are_in_the_subtree
result: passed
reports: SEG-TS-337
Test Outcome: test_the_edges_of_a_subtree_selection_are_the_edges_that_the_proof_scope_cuts SEG-OUT-45FB6809A006
nodeid: tests/specification/test_edge_selection_subtree.py::test_the_edges_of_a_subtree_selection_are_the_edges_that_the_proof_scope_cuts
result: passed
reports: SEG-TS-344
Test Outcome: test_the_subtree_is_the_requirement_and_every_requirement_that_refines_it SEG-OUT-7DC687D94363
nodeid: tests/specification/test_edge_selection_subtree.py::test_the_subtree_is_the_requirement_and_every_requirement_that_refines_it
result: passed
reports: SEG-TS-335

tests/specification/test_edge_show_unreadable_repository.py

Test Outcome: test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[git-absent] SEG-OUT-0FAC12F8E365
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[git-absent]
result: passed
Test Outcome: test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[missing-path] SEG-OUT-6DA97621B809
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[missing-path]
result: passed
Test Outcome: test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[not-a-repository] SEG-OUT-921C6B4E5D92
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[not-a-repository]
result: passed
Test Outcome: test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[objects] SEG-OUT-E45F7186B93E
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[objects]
result: passed
Test Outcome: test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[stand-in] SEG-OUT-FF5833011183
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_an_unreadable_before_content_does_not_change_the_exit_of_edge_show[stand-in]
result: passed
Test Outcome: test_edge_show_reports_before_content_it_cannot_read_as_not_available[git-absent] SEG-OUT-93C089B017A6
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_reports_before_content_it_cannot_read_as_not_available[git-absent]
result: passed
Test Outcome: test_edge_show_reports_before_content_it_cannot_read_as_not_available[missing-path] SEG-OUT-8C29AF2791EB
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_reports_before_content_it_cannot_read_as_not_available[missing-path]
result: passed
Test Outcome: test_edge_show_reports_before_content_it_cannot_read_as_not_available[not-a-repository] SEG-OUT-6A53FD29E4D3
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_reports_before_content_it_cannot_read_as_not_available[not-a-repository]
result: passed
Test Outcome: test_edge_show_reports_before_content_it_cannot_read_as_not_available[objects] SEG-OUT-71521F6E4355
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_reports_before_content_it_cannot_read_as_not_available[objects]
result: passed
Test Outcome: test_edge_show_reports_before_content_it_cannot_read_as_not_available[stand-in] SEG-OUT-4BD716FC848C
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_reports_before_content_it_cannot_read_as_not_available[stand-in]
result: passed
Test Outcome: test_edge_show_still_shows_the_content_of_the_endpoint_that_it_can_read[from-objects] SEG-OUT-D6D20856B749
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_still_shows_the_content_of_the_endpoint_that_it_can_read[from-objects]
result: passed
Test Outcome: test_edge_show_still_shows_the_content_of_the_endpoint_that_it_can_read[from-stand-in] SEG-OUT-1670828FB141
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_still_shows_the_content_of_the_endpoint_that_it_can_read[from-stand-in]
result: passed
Test Outcome: test_edge_show_still_shows_the_content_of_the_endpoint_that_it_can_read[to-objects] SEG-OUT-A74B1428FB9C
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_still_shows_the_content_of_the_endpoint_that_it_can_read[to-objects]
result: passed
Test Outcome: test_edge_show_still_shows_the_content_of_the_endpoint_that_it_can_read[to-stand-in] SEG-OUT-1249B5A6BE93
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_still_shows_the_content_of_the_endpoint_that_it_can_read[to-stand-in]
result: passed
Test Outcome: test_edge_show_without_the_verbose_rendering_reads_no_before_content[git-absent] SEG-OUT-0DAB780E865F
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_without_the_verbose_rendering_reads_no_before_content[git-absent]
result: passed
Test Outcome: test_edge_show_without_the_verbose_rendering_reads_no_before_content[missing-path] SEG-OUT-99DB5FF1BBBB
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_without_the_verbose_rendering_reads_no_before_content[missing-path]
result: passed
Test Outcome: test_edge_show_without_the_verbose_rendering_reads_no_before_content[not-a-repository] SEG-OUT-0AF379137CC8
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_without_the_verbose_rendering_reads_no_before_content[not-a-repository]
result: passed
Test Outcome: test_edge_show_without_the_verbose_rendering_reads_no_before_content[objects] SEG-OUT-5E518D581016
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_without_the_verbose_rendering_reads_no_before_content[objects]
result: passed
Test Outcome: test_edge_show_without_the_verbose_rendering_reads_no_before_content[stand-in] SEG-OUT-770F40E9602E
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_edge_show_without_the_verbose_rendering_reads_no_before_content[stand-in]
result: passed
Test Outcome: test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[git-absent] SEG-OUT-151B2D06811E
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[git-absent]
result: passed
Test Outcome: test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[missing-path] SEG-OUT-027B0F9C10C7
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[missing-path]
result: passed
Test Outcome: test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[not-a-repository] SEG-OUT-FA61A22DA1B9
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[not-a-repository]
result: passed
Test Outcome: test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[objects] SEG-OUT-22D51CBE9F9D
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[objects]
result: passed
Test Outcome: test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[stand-in] SEG-OUT-FF8E17BA436B
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_gives_a_null_content_and_an_error_for_an_unreadable_end[stand-in]
result: passed
Test Outcome: test_the_machine_readable_report_keeps_the_content_of_the_readable_end_and_has_no_error[from-objects] SEG-OUT-8700455D4E5A
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_keeps_the_content_of_the_readable_end_and_has_no_error[from-objects]
result: passed
Test Outcome: test_the_machine_readable_report_keeps_the_content_of_the_readable_end_and_has_no_error[from-stand-in] SEG-OUT-709D7898B7FE
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_keeps_the_content_of_the_readable_end_and_has_no_error[from-stand-in]
result: passed
Test Outcome: test_the_machine_readable_report_keeps_the_content_of_the_readable_end_and_has_no_error[to-objects] SEG-OUT-D9BE6D0F5099
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_keeps_the_content_of_the_readable_end_and_has_no_error[to-objects]
result: passed
Test Outcome: test_the_machine_readable_report_keeps_the_content_of_the_readable_end_and_has_no_error[to-stand-in] SEG-OUT-D1076F67E517
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_machine_readable_report_keeps_the_content_of_the_readable_end_and_has_no_error[to-stand-in]
result: passed
Test Outcome: test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[git-absent] SEG-OUT-98150CE01D3C
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[git-absent]
result: passed
Test Outcome: test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[missing-path] SEG-OUT-F1011852FD4C
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[missing-path]
result: passed
Test Outcome: test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[not-a-repository] SEG-OUT-178026C391B6
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[not-a-repository]
result: passed
Test Outcome: test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[objects] SEG-OUT-69112697047D
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[objects]
result: passed
Test Outcome: test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[stand-in] SEG-OUT-5EB2C61D4918
nodeid: tests/specification/test_edge_show_unreadable_repository.py::test_the_text_line_for_an_unreadable_end_has_the_form_of_the_page[stand-in]
result: passed

tests/specification/test_every_misshapen_need.py

Test Outcome: test_case_sync_reports_every_misshapen_need_and_writes_nothing SEG-OUT-9ED576D4149E
nodeid: tests/specification/test_every_misshapen_need.py::test_case_sync_reports_every_misshapen_need_and_writes_nothing
result: passed
reports: SEG-TS-398
Test Outcome: test_misshapen_needs_of_the_content_extractor_are_listed_in_export_order[content implementations] SEG-OUT-186A4C865BB5
nodeid: tests/specification/test_every_misshapen_need.py::test_misshapen_needs_of_the_content_extractor_are_listed_in_export_order[content implementations]
result: passed
Test Outcome: test_misshapen_needs_of_the_content_extractor_are_listed_in_export_order[content test cases] SEG-OUT-0F478D0A6529
nodeid: tests/specification/test_every_misshapen_need.py::test_misshapen_needs_of_the_content_extractor_are_listed_in_export_order[content test cases]
result: passed
Test Outcome: test_misshapen_needs_of_the_outcome_extractor_are_listed_in_export_order[outcome implementations] SEG-OUT-B4924323EB3C
nodeid: tests/specification/test_every_misshapen_need.py::test_misshapen_needs_of_the_outcome_extractor_are_listed_in_export_order[outcome implementations]
result: passed
Test Outcome: test_misshapen_needs_of_the_outcome_extractor_are_listed_in_export_order[outcome test cases] SEG-OUT-3ABF73DE9E56
nodeid: tests/specification/test_every_misshapen_need.py::test_misshapen_needs_of_the_outcome_extractor_are_listed_in_export_order[outcome test cases]
result: passed
Test Outcome: test_misshapen_needs_of_the_requirements_reader_are_listed_in_export_order SEG-OUT-E2734C74020A
nodeid: tests/specification/test_every_misshapen_need.py::test_misshapen_needs_of_the_requirements_reader_are_listed_in_export_order
result: passed
reports: SEG-TS-396
Test Outcome: test_the_content_extractor_names_every_misshapen_need_of_an_export[content implementations] SEG-OUT-B5105D625438
nodeid: tests/specification/test_every_misshapen_need.py::test_the_content_extractor_names_every_misshapen_need_of_an_export[content implementations]
result: passed
Test Outcome: test_the_content_extractor_names_every_misshapen_need_of_an_export[content test cases] SEG-OUT-EF28D84E1144
nodeid: tests/specification/test_every_misshapen_need.py::test_the_content_extractor_names_every_misshapen_need_of_an_export[content test cases]
result: passed
Test Outcome: test_the_error_for_misshapen_needs_of_the_content_extractor_starts_with_a_count[content implementations] SEG-OUT-E08A98B2F97C
nodeid: tests/specification/test_every_misshapen_need.py::test_the_error_for_misshapen_needs_of_the_content_extractor_starts_with_a_count[content implementations]
result: passed
Test Outcome: test_the_error_for_misshapen_needs_of_the_content_extractor_starts_with_a_count[content test cases] SEG-OUT-EFB25DC181AF
nodeid: tests/specification/test_every_misshapen_need.py::test_the_error_for_misshapen_needs_of_the_content_extractor_starts_with_a_count[content test cases]
result: passed
Test Outcome: test_the_error_for_misshapen_needs_of_the_outcome_extractor_starts_with_a_count[outcome implementations] SEG-OUT-25D42DE696C4
nodeid: tests/specification/test_every_misshapen_need.py::test_the_error_for_misshapen_needs_of_the_outcome_extractor_starts_with_a_count[outcome implementations]
result: passed
Test Outcome: test_the_error_for_misshapen_needs_of_the_outcome_extractor_starts_with_a_count[outcome test cases] SEG-OUT-4EA608744544
nodeid: tests/specification/test_every_misshapen_need.py::test_the_error_for_misshapen_needs_of_the_outcome_extractor_starts_with_a_count[outcome test cases]
result: passed
Test Outcome: test_the_error_for_misshapen_needs_of_the_requirements_reader_starts_with_a_count SEG-OUT-B97443DDC287
nodeid: tests/specification/test_every_misshapen_need.py::test_the_error_for_misshapen_needs_of_the_requirements_reader_starts_with_a_count
result: passed
reports: SEG-TS-393
Test Outcome: test_the_outcome_extractor_names_every_misshapen_need_of_an_export[outcome implementations] SEG-OUT-E5058B052369
nodeid: tests/specification/test_every_misshapen_need.py::test_the_outcome_extractor_names_every_misshapen_need_of_an_export[outcome implementations]
result: passed
Test Outcome: test_the_outcome_extractor_names_every_misshapen_need_of_an_export[outcome test cases] SEG-OUT-4CF46717D620
nodeid: tests/specification/test_every_misshapen_need.py::test_the_outcome_extractor_names_every_misshapen_need_of_an_export[outcome test cases]
result: passed
Test Outcome: test_the_requirements_reader_names_every_misshapen_need_of_an_export SEG-OUT-4E4A86F54E4B
nodeid: tests/specification/test_every_misshapen_need.py::test_the_requirements_reader_names_every_misshapen_need_of_an_export
result: passed
reports: SEG-TS-390

tests/specification/test_every_unmapped_result.py

Test Outcome: test_a_result_with_the_status_not_run_is_refused_for_its_status SEG-OUT-A2071557CCB3
nodeid: tests/specification/test_every_unmapped_result.py::test_a_result_with_the_status_not_run_is_refused_for_its_status
result: passed
reports: SEG-TS-402
Test Outcome: test_each_unmapped_result_line_names_its_board_and_scenario SEG-OUT-2CE110B0B79C
nodeid: tests/specification/test_every_unmapped_result.py::test_each_unmapped_result_line_names_its_board_and_scenario
result: passed
reports: SEG-TS-413
Test Outcome: test_every_not_run_result_is_named_in_one_status_refusal SEG-OUT-52032556C8F7
nodeid: tests/specification/test_every_unmapped_result.py::test_every_not_run_result_is_named_in_one_status_refusal
result: passed
reports: SEG-TS-412
Test Outcome: test_every_unmapped_and_ambiguous_result_is_named_in_one_error SEG-OUT-65BF368B6639
nodeid: tests/specification/test_every_unmapped_result.py::test_every_unmapped_and_ambiguous_result_is_named_in_one_error
result: passed
reports: SEG-TS-399
Test Outcome: test_the_error_for_unmapped_results_starts_with_a_count SEG-OUT-167CD2B07507
nodeid: tests/specification/test_every_unmapped_result.py::test_the_error_for_unmapped_results_starts_with_a_count
result: passed
reports: SEG-TS-400
Test Outcome: test_unmapped_results_are_listed_in_the_order_of_the_artifact_every_time SEG-OUT-7BF789F707A5
nodeid: tests/specification/test_every_unmapped_result.py::test_unmapped_results_are_listed_in_the_order_of_the_artifact_every_time
result: passed
reports: SEG-TS-401

tests/specification/test_extraction_revision_affirm.py

Test Outcome: test_a_revision_given_on_the_command_line_is_never_an_extraction_revision SEG-OUT-CE059B17ECED
nodeid: tests/specification/test_extraction_revision_affirm.py::test_a_revision_given_on_the_command_line_is_never_an_extraction_revision
result: passed
reports: SEG-TS-214
Test Outcome: test_edge_affirm_drops_the_held_revision_of_an_endpoint_changed_and_not_committed SEG-OUT-9755D4AE3EF5
nodeid: tests/specification/test_extraction_revision_affirm.py::test_edge_affirm_drops_the_held_revision_of_an_endpoint_changed_and_not_committed
result: passed
reports: SEG-TS-213
Test Outcome: test_edge_affirm_keeps_the_held_revision_of_an_unchanged_endpoint SEG-OUT-3DAB85975E7B
nodeid: tests/specification/test_extraction_revision_affirm.py::test_edge_affirm_keeps_the_held_revision_of_an_unchanged_endpoint
result: passed
reports: SEG-TS-212
Test Outcome: test_edge_affirm_records_the_discovered_revision_in_both_endpoint_records SEG-OUT-F8710617831F
nodeid: tests/specification/test_extraction_revision_affirm.py::test_edge_affirm_records_the_discovered_revision_in_both_endpoint_records
result: passed
reports: SEG-TS-211
Test Outcome: test_edge_affirm_reports_the_repository_and_the_count_of_records_without_a_revision SEG-OUT-ED244D5EFEDD
nodeid: tests/specification/test_extraction_revision_affirm.py::test_edge_affirm_reports_the_repository_and_the_count_of_records_without_a_revision
result: passed
reports: SEG-TS-218

tests/specification/test_extraction_revision_store.py

Test Outcome: test_a_malformed_extraction_revision_is_refused SEG-OUT-4AB5E059EE84
nodeid: tests/specification/test_extraction_revision_store.py::test_a_malformed_extraction_revision_is_refused
result: passed
reports: SEG-TS-220
Test Outcome: test_a_node_record_keeps_the_extraction_revisions_it_is_given SEG-OUT-ABDE27C7FE46
nodeid: tests/specification/test_extraction_revision_store.py::test_a_node_record_keeps_the_extraction_revisions_it_is_given
result: passed
reports: SEG-TS-195
Test Outcome: test_a_node_record_with_no_revision_is_stored_with_no_field SEG-OUT-8BDEA2DAAA36
nodeid: tests/specification/test_extraction_revision_store.py::test_a_node_record_with_no_revision_is_stored_with_no_field
result: passed
reports: SEG-TS-221
Test Outcome: test_a_node_record_without_an_extraction_revision_is_read_back_as_written SEG-OUT-08BEB0E685F0
nodeid: tests/specification/test_extraction_revision_store.py::test_a_node_record_without_an_extraction_revision_is_read_back_as_written
result: passed
reports: SEG-TS-196
Test Outcome: test_every_node_schema_declares_the_extraction_revisions_as_optional SEG-OUT-D64AAB598260
nodeid: tests/specification/test_extraction_revision_store.py::test_every_node_schema_declares_the_extraction_revisions_as_optional
result: passed
reports: SEG-TS-198
Test Outcome: test_the_extraction_revisions_never_enter_a_hash SEG-OUT-1CBE43F8449E
nodeid: tests/specification/test_extraction_revision_store.py::test_the_extraction_revisions_never_enter_a_hash
result: passed
reports: SEG-TS-197

tests/specification/test_extraction_revision_sync.py

Test Outcome: test_a_changed_hash_for_a_directory_that_is_not_a_repository_drops_the_held_revision SEG-OUT-111D84995B93
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_changed_hash_for_a_directory_that_is_not_a_repository_drops_the_held_revision
result: passed
reports: SEG-TS-219
Test Outcome: test_a_changed_hash_for_a_repository_that_is_not_configured_drops_the_held_revision SEG-OUT-193622FCD4CB
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_changed_hash_for_a_repository_that_is_not_configured_drops_the_held_revision
result: passed
reports: SEG-TS-205
Test Outcome: test_a_changed_hash_over_an_uncommitted_change_drops_the_held_revision SEG-OUT-49D540369554
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_changed_hash_over_an_uncommitted_change_drops_the_held_revision
result: passed
reports: SEG-TS-204
Test Outcome: test_a_changed_hash_replaces_the_held_revision_with_the_discovered_one SEG-OUT-C523688FE8F7
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_changed_hash_replaces_the_held_revision_with_the_discovered_one
result: passed
reports: SEG-TS-200
Test Outcome: test_a_held_revision_for_a_repository_the_anchors_no_longer_name_is_not_kept SEG-OUT-0C3177661CEC
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_held_revision_for_a_repository_the_anchors_no_longer_name_is_not_kept
result: passed
reports: SEG-TS-222
Test Outcome: test_a_node_the_case_does_not_hold_gets_the_discovered_revision SEG-OUT-8BD99E846AF0
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_node_the_case_does_not_hold_gets_the_discovered_revision
result: passed
reports: SEG-TS-199
Test Outcome: test_a_node_whose_anchors_name_two_repositories_gets_a_revision_for_each SEG-OUT-2EDA886F65E5
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_node_whose_anchors_name_two_repositories_gets_a_revision_for_each
result: passed
reports: SEG-TS-210
Test Outcome: test_a_path_the_repository_does_not_hold_gives_no_revision SEG-OUT-0325061F5089
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_path_the_repository_does_not_hold_gives_no_revision
result: passed
reports: SEG-TS-206
Test Outcome: test_a_schema_copy_without_the_field_refuses_the_sync_until_it_is_refreshed SEG-OUT-02C31C3D9F52
nodeid: tests/specification/test_extraction_revision_sync.py::test_a_schema_copy_without_the_field_refuses_the_sync_until_it_is_refreshed
result: passed
reports: SEG-TS-215
Test Outcome: test_an_unchanged_hash_keeps_the_held_revision_after_the_repository_moves_on SEG-OUT-42EED3C7510E
nodeid: tests/specification/test_extraction_revision_sync.py::test_an_unchanged_hash_keeps_the_held_revision_after_the_repository_moves_on
result: passed
reports: SEG-TS-202
Test Outcome: test_an_unchanged_hash_keeps_the_held_revision_when_the_repository_is_not_configured SEG-OUT-721C2A0D1A5E
nodeid: tests/specification/test_extraction_revision_sync.py::test_an_unchanged_hash_keeps_the_held_revision_when_the_repository_is_not_configured
result: passed
reports: SEG-TS-203
Test Outcome: test_an_unchanged_hash_with_no_revision_held_gets_the_discovered_revision SEG-OUT-11A286A7AD70
nodeid: tests/specification/test_extraction_revision_sync.py::test_an_unchanged_hash_with_no_revision_held_gets_the_discovered_revision
result: passed
reports: SEG-TS-201
Test Outcome: test_each_node_gets_the_revision_of_the_repository_its_anchors_name SEG-OUT-52E1C53CA6E4
nodeid: tests/specification/test_extraction_revision_sync.py::test_each_node_gets_the_revision_of_the_repository_its_anchors_name
result: passed
reports: SEG-TS-209
Test Outcome: test_the_report_counts_the_records_without_a_revision_for_each_repository SEG-OUT-38677B515949
nodeid: tests/specification/test_extraction_revision_sync.py::test_the_report_counts_the_records_without_a_revision_for_each_repository
result: passed
reports: SEG-TS-208
Test Outcome: test_the_report_names_the_repository_and_the_count_of_records_without_a_revision SEG-OUT-6A84314D5A2D
nodeid: tests/specification/test_extraction_revision_sync.py::test_the_report_names_the_repository_and_the_count_of_records_without_a_revision
result: passed
reports: SEG-TS-207

tests/specification/test_extractor_comment_search.py

Test Outcome: test_a_missing_comment_above_a_test_is_an_error_for_its_node SEG-OUT-D23A9DD88EDF
nodeid: tests/specification/test_extractor_comment_search.py::test_a_missing_comment_above_a_test_is_an_error_for_its_node
result: passed
reports: SEG-TS-172
Test Outcome: test_a_plain_comment_is_no_documentation_comment SEG-OUT-F31E00042D07
nodeid: tests/specification/test_extractor_comment_search.py::test_a_plain_comment_is_no_documentation_comment
result: passed
reports: SEG-TS-173
Test Outcome: test_a_spechash_steps_over_blank_lines_and_conditional_lines SEG-OUT-8F6B704661DD
nodeid: tests/specification/test_extractor_comment_search.py::test_a_spechash_steps_over_blank_lines_and_conditional_lines
result: passed
reports: SEG-TS-190
Test Outcome: test_a_spechash_steps_over_plain_comments SEG-OUT-52CE03BBC8D7
nodeid: tests/specification/test_extractor_comment_search.py::test_a_spechash_steps_over_plain_comments
result: passed
reports: SEG-TS-191
Test Outcome: test_the_lines_stepped_over_are_outside_the_spechash SEG-OUT-F7B8759D198E
nodeid: tests/specification/test_extractor_comment_search.py::test_the_lines_stepped_over_are_outside_the_spechash
result: passed
reports: SEG-TS-192
Test Outcome: test_the_search_for_an_implementation_comment_is_not_widened SEG-OUT-2F8D1CA7D0D7
nodeid: tests/specification/test_extractor_comment_search.py::test_the_search_for_an_implementation_comment_is_not_widened
result: passed
reports: SEG-TS-193

tests/specification/test_extractor_error_report.py

Test Outcome: test_every_node_that_cannot_be_supplied_is_reported_in_one_error SEG-OUT-CE3799A8B893
nodeid: tests/specification/test_extractor_error_report.py::test_every_node_that_cannot_be_supplied_is_reported_in_one_error
result: passed
reports: SEG-TS-171

tests/specification/test_extractor_types_modules_and_prefix.py

Test Outcome: test_a_doxygen_path_is_mapped_into_the_repository_by_the_prefix SEG-OUT-08114DAAF8F6
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_a_doxygen_path_is_mapped_into_the_repository_by_the_prefix
result: passed
reports: SEG-TS-168
Test Outcome: test_a_need_of_another_type_is_not_refused SEG-OUT-BB2AA2A32B84
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_a_need_of_another_type_is_not_refused
result: passed
reports: SEG-TS-166
Test Outcome: test_a_path_outside_the_prefix_is_an_error_and_is_not_read SEG-OUT-556643EAB074
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_a_path_outside_the_prefix_is_an_error_and_is_not_read
result: passed
reports: SEG-TS-169
Test Outcome: test_a_path_outside_the_repository_of_the_stream_is_an_error SEG-OUT-0E12E3BCE674
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_a_path_outside_the_repository_of_the_stream_is_an_error
result: passed
reports: SEG-TS-189
Test Outcome: test_a_shared_symbol_is_narrowed_by_the_test_module SEG-OUT-D672BDC17EBD
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_a_shared_symbol_is_narrowed_by_the_test_module
result: passed
reports: SEG-TS-167
Test Outcome: test_after_the_module_choice_not_exactly_one_member_is_an_error SEG-OUT-BC5C6CC15AB5
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_after_the_module_choice_not_exactly_one_member_is_an_error
result: passed
reports: SEG-TS-188
Test Outcome: test_an_anchor_names_the_repository_of_its_stream_and_the_path_inside_it SEG-OUT-920E3FC9DF8C
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_an_anchor_names_the_repository_of_its_stream_and_the_path_inside_it
result: passed
reports: SEG-TS-170
Test Outcome: test_configured_need_types_and_only_those_supply_records SEG-OUT-4B72A42DE35B
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_configured_need_types_and_only_those_supply_records
result: passed
reports: SEG-TS-164
Test Outcome: test_the_test_module_is_compared_with_the_path_after_the_prefix SEG-OUT-D9811CBA5E80
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_the_test_module_is_compared_with_the_path_after_the_prefix
result: passed
reports: SEG-TS-194
Test Outcome: test_without_configured_types_every_need_supplies_a_record SEG-OUT-CA1D79B3C28E
nodeid: tests/specification/test_extractor_types_modules_and_prefix.py::test_without_configured_types_every_need_supplies_a_record
result: passed
reports: SEG-TS-165

tests/specification/test_gate_skip_rule.py

Test Outcome: test_a_failed_outcome_excused_by_a_valid_waiver_satisfies_the_leaf SEG-OUT-C9E7028DF37E
nodeid: tests/specification/test_gate_skip_rule.py::test_a_failed_outcome_excused_by_a_valid_waiver_satisfies_the_leaf
result: passed
reports: SEG-TS-051
Test Outcome: test_a_failing_outcome_excused_by_a_valid_waiver_only_informs SEG-OUT-2ED3C17CB643
nodeid: tests/specification/test_gate_skip_rule.py::test_a_failing_outcome_excused_by_a_valid_waiver_only_informs
result: passed
reports: SEG-TS-046
Test Outcome: test_a_failing_outcome_without_a_valid_waiver_blocks SEG-OUT-115FFA9B5FBF
nodeid: tests/specification/test_gate_skip_rule.py::test_a_failing_outcome_without_a_valid_waiver_blocks
result: passed
reports: SEG-TS-045
Test Outcome: test_a_leaf_whose_only_outcome_was_skipped_is_not_satisfied SEG-OUT-48E64A64F4E1
nodeid: tests/specification/test_gate_skip_rule.py::test_a_leaf_whose_only_outcome_was_skipped_is_not_satisfied
result: passed
reports: SEG-TS-050
Test Outcome: test_a_skipped_outcome_beside_a_passed_one_leaves_the_leaf_satisfied SEG-OUT-F85B60885FE4
nodeid: tests/specification/test_gate_skip_rule.py::test_a_skipped_outcome_beside_a_passed_one_leaves_the_leaf_satisfied
result: passed
reports: SEG-TS-049
Test Outcome: test_a_skipped_outcome_is_reported_as_information SEG-OUT-C405C7C651A7
nodeid: tests/specification/test_gate_skip_rule.py::test_a_skipped_outcome_is_reported_as_information
result: passed
reports: SEG-TS-048
Test Outcome: test_a_stale_skipped_outcome_is_reported_once_as_stale SEG-OUT-631322A9D041
nodeid: tests/specification/test_gate_skip_rule.py::test_a_stale_skipped_outcome_is_reported_once_as_stale
result: passed
reports: SEG-TS-052
Test Outcome: test_a_valid_waiver_changes_nothing_for_a_skipped_outcome SEG-OUT-E93C7DC9F590
nodeid: tests/specification/test_gate_skip_rule.py::test_a_valid_waiver_changes_nothing_for_a_skipped_outcome
result: passed
reports: SEG-TS-047

tests/specification/test_gate_unreadable_repository.py

Test Outcome: test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[git-absent] SEG-OUT-77F1601D09E6
nodeid: tests/specification/test_gate_unreadable_repository.py::test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[git-absent]
result: passed
Test Outcome: test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[missing-path] SEG-OUT-3A0951E80B60
nodeid: tests/specification/test_gate_unreadable_repository.py::test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[missing-path]
result: passed
Test Outcome: test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[not-a-repository] SEG-OUT-9F972936326C
nodeid: tests/specification/test_gate_unreadable_repository.py::test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[not-a-repository]
result: passed
Test Outcome: test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[objects] SEG-OUT-FC2FBCE3BE6D
nodeid: tests/specification/test_gate_unreadable_repository.py::test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[objects]
result: passed
Test Outcome: test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[stand-in] SEG-OUT-BF660812BE07
nodeid: tests/specification/test_gate_unreadable_repository.py::test_proof_generate_writes_no_package_when_it_cannot_read_the_repository[stand-in]
result: passed
Test Outcome: test_the_commands_that_need_no_implementation_revision_read_no_repository SEG-OUT-0DC6D22521BC
nodeid: tests/specification/test_gate_unreadable_repository.py::test_the_commands_that_need_no_implementation_revision_read_no_repository
result: passed
reports: SEG-TS-359
Test Outcome: test_the_gate_names_an_implementation_repository_that_it_cannot_read[git-absent] SEG-OUT-DF75CEDCAB5E
nodeid: tests/specification/test_gate_unreadable_repository.py::test_the_gate_names_an_implementation_repository_that_it_cannot_read[git-absent]
result: passed
Test Outcome: test_the_gate_names_an_implementation_repository_that_it_cannot_read[missing-path] SEG-OUT-7453F0451420
nodeid: tests/specification/test_gate_unreadable_repository.py::test_the_gate_names_an_implementation_repository_that_it_cannot_read[missing-path]
result: passed
Test Outcome: test_the_gate_names_an_implementation_repository_that_it_cannot_read[not-a-repository] SEG-OUT-92B76C987D4D
nodeid: tests/specification/test_gate_unreadable_repository.py::test_the_gate_names_an_implementation_repository_that_it_cannot_read[not-a-repository]
result: passed
Test Outcome: test_the_gate_names_an_implementation_repository_that_it_cannot_read[objects] SEG-OUT-635172A87EC1
nodeid: tests/specification/test_gate_unreadable_repository.py::test_the_gate_names_an_implementation_repository_that_it_cannot_read[objects]
result: passed
Test Outcome: test_the_gate_names_an_implementation_repository_that_it_cannot_read[stand-in] SEG-OUT-4EFA3964F4B3
nodeid: tests/specification/test_gate_unreadable_repository.py::test_the_gate_names_an_implementation_repository_that_it_cannot_read[stand-in]
result: passed
Test Outcome: test_the_gate_reads_the_implementation_repository_without_the_variables_that_name_a_repository SEG-OUT-EC9DDB91D818
nodeid: tests/specification/test_gate_unreadable_repository.py::test_the_gate_reads_the_implementation_repository_without_the_variables_that_name_a_repository
result: passed
reports: SEG-TS-360

tests/specification/test_graph.py

Test Outcome: test_a_record_of_an_undeclared_kind_is_refused SEG-OUT-A58CD7C22C06
nodeid: tests/specification/test_graph.py::test_a_record_of_an_undeclared_kind_is_refused
result: passed
reports: SEG-TS-009
Test Outcome: test_a_refines_cycle_or_self_loop_is_refused SEG-OUT-41445B0CE9B9
nodeid: tests/specification/test_graph.py::test_a_refines_cycle_or_self_loop_is_refused
result: passed
reports: SEG-TS-007
Test Outcome: test_an_unaffirmed_edge_builds_as_pending SEG-OUT-18CF329FB6D0
nodeid: tests/specification/test_graph.py::test_an_unaffirmed_edge_builds_as_pending
result: passed
reports: SEG-TS-008

tests/specification/test_manual_configuration_examples.py

Test Outcome: test_every_configuration_example_of_the_pages_loads[manual/explanation/architecture/command-line-interface.rst:1] SEG-OUT-FBA3826FC74E
nodeid: tests/specification/test_manual_configuration_examples.py::test_every_configuration_example_of_the_pages_loads[manual/explanation/architecture/command-line-interface.rst:1]
result: passed
Test Outcome: test_every_configuration_example_of_the_pages_loads[manual/howto/narrow-an-implementation-export.rst:1] SEG-OUT-2DB8CF629226
nodeid: tests/specification/test_manual_configuration_examples.py::test_every_configuration_example_of_the_pages_loads[manual/howto/narrow-an-implementation-export.rst:1]
result: passed
Test Outcome: test_every_configuration_example_of_the_pages_loads[manual/tutorials/installation.rst:1] SEG-OUT-F70FE07490E7
nodeid: tests/specification/test_manual_configuration_examples.py::test_every_configuration_example_of_the_pages_loads[manual/tutorials/installation.rst:1]
result: passed
Test Outcome: test_the_pages_show_at_least_one_configuration_example SEG-OUT-23AB19CEC102
nodeid: tests/specification/test_manual_configuration_examples.py::test_the_pages_show_at_least_one_configuration_example
result: passed
reports: SEG-TS-442

tests/specification/test_need_ids_confirming_outcomes.py

Test Outcome: test_an_outcome_whose_only_witnessed_implementation_is_not_listed_is_set_aside SEG-OUT-82B6C6D70007
nodeid: tests/specification/test_need_ids_confirming_outcomes.py::test_an_outcome_whose_only_witnessed_implementation_is_not_listed_is_set_aside
result: passed
reports: SEG-TS-441

tests/specification/test_node_comparison.py

Test Outcome: test_a_hash_that_only_the_case_holds_is_recorded_only SEG-OUT-8E454AD5EEBE
nodeid: tests/specification/test_node_comparison.py::test_a_hash_that_only_the_case_holds_is_recorded_only
result: passed
reports: SEG-TS-229
Test Outcome: test_a_hash_that_only_the_current_stream_carries_is_current_only SEG-OUT-0C031184BFDF
nodeid: tests/specification/test_node_comparison.py::test_a_hash_that_only_the_current_stream_carries_is_current_only
result: passed
reports: SEG-TS-230
Test Outcome: test_a_hash_with_another_digest_on_each_side_differs SEG-OUT-FBB5ED4F2D59
nodeid: tests/specification/test_node_comparison.py::test_a_hash_with_another_digest_on_each_side_differs
result: passed
reports: SEG-TS-228
Test Outcome: test_a_hash_with_the_same_digest_on_both_sides_matches SEG-OUT-953C80F524FB
nodeid: tests/specification/test_node_comparison.py::test_a_hash_with_the_same_digest_on_both_sides_matches
result: passed
reports: SEG-TS-227
Test Outcome: test_a_node_that_only_one_side_holds_has_every_hash_on_one_side_only SEG-OUT-172D75546C87
nodeid: tests/specification/test_node_comparison.py::test_a_node_that_only_one_side_holds_has_every_hash_on_one_side_only
result: passed
reports: SEG-TS-232
Test Outcome: test_each_hash_name_of_a_node_gets_its_own_result SEG-OUT-88C37634AB63
nodeid: tests/specification/test_node_comparison.py::test_each_hash_name_of_a_node_gets_its_own_result
result: passed
reports: SEG-TS-231

tests/specification/test_node_content_sources.py

Test Outcome: test_the_composed_producer_supplies_the_bytes_it_hashed SEG-OUT-B1311A60B8B5
nodeid: tests/specification/test_node_content_sources.py::test_the_composed_producer_supplies_the_bytes_it_hashed
result: passed
reports: SEG-TS-226
Test Outcome: test_the_content_extractor_supplies_the_bytes_it_hashed SEG-OUT-6F16BD6D8D78
nodeid: tests/specification/test_node_content_sources.py::test_the_content_extractor_supplies_the_bytes_it_hashed
result: passed
reports: SEG-TS-224
Test Outcome: test_the_requirements_reader_supplies_the_bytes_it_hashed SEG-OUT-18FAFBCD866D
nodeid: tests/specification/test_node_content_sources.py::test_the_requirements_reader_supplies_the_bytes_it_hashed
result: passed
reports: SEG-TS-223
Test Outcome: test_the_would_be_store_supplies_the_bytes_it_hashed SEG-OUT-26D724B81189
nodeid: tests/specification/test_node_content_sources.py::test_the_would_be_store_supplies_the_bytes_it_hashed
result: passed
reports: SEG-TS-225

tests/specification/test_node_show_edge_cases.py

Test Outcome: test_node_show_exits_with_status_2_for_an_identifier_the_current_stream_holds_twice SEG-OUT-0E20CA70F3D7
nodeid: tests/specification/test_node_show_edge_cases.py::test_node_show_exits_with_status_2_for_an_identifier_the_current_stream_holds_twice
result: passed
reports: SEG-TS-257
Test Outcome: test_node_show_gives_other_content_as_base64_in_json SEG-OUT-C76FD7C6081B
nodeid: tests/specification/test_node_show_edge_cases.py::test_node_show_gives_other_content_as_base64_in_json
result: passed
reports: SEG-TS-256
Test Outcome: test_node_show_gives_valid_utf8_content_as_text_in_json SEG-OUT-CFE37114792C
nodeid: tests/specification/test_node_show_edge_cases.py::test_node_show_gives_valid_utf8_content_as_text_in_json
result: passed
reports: SEG-TS-255
Test Outcome: test_node_show_reports_a_repository_that_cannot_be_read_with_the_reason SEG-OUT-8F04D609E650
nodeid: tests/specification/test_node_show_edge_cases.py::test_node_show_reports_a_repository_that_cannot_be_read_with_the_reason
result: passed
reports: SEG-TS-259
Test Outcome: test_node_show_reports_no_current_content_for_a_hash_only_the_case_records SEG-OUT-18A0390D787C
nodeid: tests/specification/test_node_show_edge_cases.py::test_node_show_reports_no_current_content_for_a_hash_only_the_case_records
result: passed
reports: SEG-TS-258

tests/specification/test_node_show_report.py

Test Outcome: test_node_show_compares_every_named_hash_of_the_node SEG-OUT-6878A33B91F6
nodeid: tests/specification/test_node_show_report.py::test_node_show_compares_every_named_hash_of_the_node
result: passed
reports: SEG-TS-234
Test Outcome: test_node_show_names_each_anchored_path_that_differs_from_its_commit SEG-OUT-A9BF1588A1DF
nodeid: tests/specification/test_node_show_report.py::test_node_show_names_each_anchored_path_that_differs_from_its_commit
result: passed
reports: SEG-TS-241
Test Outcome: test_node_show_reports_the_recorded_revision_of_the_recorded_anchors_repository SEG-OUT-ADD408195661
nodeid: tests/specification/test_node_show_report.py::test_node_show_reports_the_recorded_revision_of_the_recorded_anchors_repository
result: passed
reports: SEG-TS-237
Test Outcome: test_node_show_reports_the_revision_the_current_anchors_repository_is_at SEG-OUT-D149E33306EB
nodeid: tests/specification/test_node_show_report.py::test_node_show_reports_the_revision_the_current_anchors_repository_is_at
result: passed
reports: SEG-TS-239
Test Outcome: test_node_show_resolves_a_node_by_its_identifier SEG-OUT-A70EA6E3AE07
nodeid: tests/specification/test_node_show_report.py::test_node_show_resolves_a_node_by_its_identifier
result: passed
reports: SEG-TS-233
Test Outcome: test_node_show_says_when_no_repository_is_configured_for_the_current_anchor SEG-OUT-34A8541C2951
nodeid: tests/specification/test_node_show_report.py::test_node_show_says_when_no_repository_is_configured_for_the_current_anchor
result: passed
reports: SEG-TS-240
Test Outcome: test_node_show_says_when_the_case_records_no_extraction_revision SEG-OUT-1AE0D62053E3
nodeid: tests/specification/test_node_show_report.py::test_node_show_says_when_the_case_records_no_extraction_revision
result: passed
reports: SEG-TS-238
Test Outcome: test_node_show_says_when_the_source_supplies_no_content SEG-OUT-6758309F80B9
nodeid: tests/specification/test_node_show_report.py::test_node_show_says_when_the_source_supplies_no_content
result: passed
reports: SEG-TS-236
Test Outcome: test_node_show_shows_the_current_content_of_every_hash SEG-OUT-12BF4DF7CD29
nodeid: tests/specification/test_node_show_report.py::test_node_show_shows_the_current_content_of_every_hash
result: passed
reports: SEG-TS-235

tests/specification/test_node_show_user_case.py

Test Outcome: test_node_show_answers_what_changed_and_where_the_recorded_content_was_read SEG-OUT-FF13D3C33FD1
nodeid: tests/specification/test_node_show_user_case.py::test_node_show_answers_what_changed_and_where_the_recorded_content_was_read
result: passed
reports: SEG-TS-253
Test Outcome: test_node_show_gives_no_fallback_revision_for_a_node_record_with_none SEG-OUT-DD1A95DFC483
nodeid: tests/specification/test_node_show_user_case.py::test_node_show_gives_no_fallback_revision_for_a_node_record_with_none
result: passed
reports: SEG-TS-254

tests/specification/test_node_show_verdicts.py

Test Outcome: test_node_show_exits_with_status_0_for_a_matching_hash_on_a_dirty_checkout SEG-OUT-765DBFBAAF65
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_exits_with_status_0_for_a_matching_hash_on_a_dirty_checkout
result: passed
reports: SEG-TS-243
Test Outcome: test_node_show_exits_with_status_0_while_every_hash_matches SEG-OUT-6D60C50BA1E6
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_exits_with_status_0_while_every_hash_matches
result: passed
reports: SEG-TS-242
Test Outcome: test_node_show_exits_with_status_1_while_a_hash_differs SEG-OUT-E3F977E8B70F
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_exits_with_status_1_while_a_hash_differs
result: passed
reports: SEG-TS-244
Test Outcome: test_node_show_exits_with_status_1_while_a_hash_is_on_one_side_only SEG-OUT-9E5745A92117
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_exits_with_status_1_while_a_hash_is_on_one_side_only
result: passed
reports: SEG-TS-245
Test Outcome: test_node_show_exits_with_status_1_while_the_current_stream_holds_no_such_node SEG-OUT-613A41FC58DD
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_exits_with_status_1_while_the_current_stream_holds_no_such_node
result: passed
reports: SEG-TS-246
Test Outcome: test_node_show_exits_with_status_2_for_an_identifier_the_case_does_not_hold SEG-OUT-D72CE84C8C35
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_exits_with_status_2_for_an_identifier_the_case_does_not_hold
result: passed
reports: SEG-TS-247
Test Outcome: test_node_show_exits_with_status_2_when_it_cannot_read_the_current_stream SEG-OUT-B64BD0A21FC2
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_exits_with_status_2_when_it_cannot_read_the_current_stream
result: passed
reports: SEG-TS-248
Test Outcome: test_node_show_takes_no_run_bundle SEG-OUT-E34E6264112A
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_takes_no_run_bundle
result: passed
reports: SEG-TS-249
Test Outcome: test_node_show_without_a_current_stream_or_a_producer_cannot_be_judged SEG-OUT-3C6591BF041F
nodeid: tests/specification/test_node_show_verdicts.py::test_node_show_without_a_current_stream_or_a_producer_cannot_be_judged
result: passed
reports: SEG-TS-250

tests/specification/test_node_show_writes_nothing.py

Test Outcome: test_node_show_changes_no_file_of_the_case SEG-OUT-BFFC1B886368
nodeid: tests/specification/test_node_show_writes_nothing.py::test_node_show_changes_no_file_of_the_case
result: passed
reports: SEG-TS-251
Test Outcome: test_node_show_writes_nothing_in_the_content_repository SEG-OUT-515C2682D394
nodeid: tests/specification/test_node_show_writes_nothing.py::test_node_show_writes_nothing_in_the_content_repository
result: passed
reports: SEG-TS-252

tests/specification/test_outcome_extractor.py

Test Outcome: test_a_confirms_edge_runs_from_each_outcome_to_its_specification SEG-OUT-ED3D388706EB
nodeid: tests/specification/test_outcome_extractor.py::test_a_confirms_edge_runs_from_each_outcome_to_its_specification
result: passed
reports: SEG-TS-063
Test Outcome: test_a_content_hash_covers_the_specification_the_run_and_the_result_only SEG-OUT-D11AFD63DF2A
nodeid: tests/specification/test_outcome_extractor.py::test_a_content_hash_covers_the_specification_the_run_and_the_result_only
result: passed
reports: SEG-TS-057
Test Outcome: test_a_recorded_status_maps_onto_the_closed_result_set SEG-OUT-11EB7E9A1ACD
nodeid: tests/specification/test_outcome_extractor.py::test_a_recorded_status_maps_onto_the_closed_result_set
result: passed
reports: SEG-TS-058
Test Outcome: test_a_result_maps_to_the_need_with_its_scenario_suite_and_test_function SEG-OUT-76788D731E2E
nodeid: tests/specification/test_outcome_extractor.py::test_a_result_maps_to_the_need_with_its_scenario_suite_and_test_function
result: passed
reports: SEG-TS-055
Test Outcome: test_a_run_identifier_joins_the_run_name_the_platform_and_the_scenario SEG-OUT-449328EE291E
nodeid: tests/specification/test_outcome_extractor.py::test_a_run_identifier_joins_the_run_name_the_platform_and_the_scenario
result: passed
reports: SEG-TS-053
Test Outcome: test_a_run_with_no_recorded_revision_is_refused SEG-OUT-C9DB5E3153A5
nodeid: tests/specification/test_outcome_extractor.py::test_a_run_with_no_recorded_revision_is_refused
result: passed
reports: SEG-TS-062
Test Outcome: test_a_skipped_result_is_recorded_as_a_skipped_outcome SEG-OUT-636F5BD7984A
nodeid: tests/specification/test_outcome_extractor.py::test_a_skipped_result_is_recorded_as_a_skipped_outcome
result: passed
reports: SEG-TS-060
Test Outcome: test_a_specification_identifier_is_the_test_case_needs_identifier_verbatim SEG-OUT-57DC344C0E9E
nodeid: tests/specification/test_outcome_extractor.py::test_a_specification_identifier_is_the_test_case_needs_identifier_verbatim
result: passed
reports: SEG-TS-054
Test Outcome: test_a_status_with_no_counterpart_is_an_error_for_that_result SEG-OUT-3A6989D07E5D
nodeid: tests/specification/test_outcome_extractor.py::test_a_status_with_no_counterpart_is_an_error_for_that_result
result: passed
reports: SEG-TS-059
Test Outcome: test_a_witnesses_edge_runs_to_each_implementation_of_what_the_specification_verifies SEG-OUT-1FEC9505B8D3
nodeid: tests/specification/test_outcome_extractor.py::test_a_witnesses_edge_runs_to_each_implementation_of_what_the_specification_verifies
result: passed
reports: SEG-TS-064
Test Outcome: test_an_outcomes_anchor_names_the_run_artifact_and_the_result SEG-OUT-580D9CFC09D0
nodeid: tests/specification/test_outcome_extractor.py::test_an_outcomes_anchor_names_the_run_artifact_and_the_result
result: passed
reports: SEG-TS-065
Test Outcome: test_an_outcomes_revision_is_the_revision_the_bundle_records_for_the_checkout SEG-OUT-AB7E3161F63B
nodeid: tests/specification/test_outcome_extractor.py::test_an_outcomes_revision_is_the_revision_the_bundle_records_for_the_checkout
result: passed
reports: SEG-TS-061
Test Outcome: test_an_unmapped_or_ambiguous_result_is_an_error_for_that_result SEG-OUT-6001EFC52E7D
nodeid: tests/specification/test_outcome_extractor.py::test_an_unmapped_or_ambiguous_result_is_an_error_for_that_result
result: passed
reports: SEG-TS-056

tests/specification/test_outcome_extractor_boards.py

Test Outcome: test_a_board_that_skipped_the_test_adds_no_obligation SEG-OUT-BE970386C069
nodeid: tests/specification/test_outcome_extractor_boards.py::test_a_board_that_skipped_the_test_adds_no_obligation
result: passed
reports: SEG-TS-333
Test Outcome: test_a_leaf_is_not_satisfied_when_the_test_failed_on_one_board SEG-OUT-D676F349E913
nodeid: tests/specification/test_outcome_extractor_boards.py::test_a_leaf_is_not_satisfied_when_the_test_failed_on_one_board
result: passed
reports: SEG-TS-332
Test Outcome: test_a_leaf_is_satisfied_when_the_test_passed_on_every_board SEG-OUT-EE515657D8EE
nodeid: tests/specification/test_outcome_extractor_boards.py::test_a_leaf_is_satisfied_when_the_test_passed_on_every_board
result: passed
reports: SEG-TS-331

tests/specification/test_outcome_extractor_need_ids.py

Test Outcome: test_a_listed_identifier_of_a_need_of_another_type_is_refused_by_the_outcome_extractor SEG-OUT-2F17D11E9012
nodeid: tests/specification/test_outcome_extractor_need_ids.py::test_a_listed_identifier_of_a_need_of_another_type_is_refused_by_the_outcome_extractor
result: passed
reports: SEG-TS-438
Test Outcome: test_a_listed_identifier_that_names_no_need_is_refused_by_the_outcome_extractor SEG-OUT-93E6850A5981
nodeid: tests/specification/test_outcome_extractor_need_ids.py::test_a_listed_identifier_that_names_no_need_is_refused_by_the_outcome_extractor
result: passed
reports: SEG-TS-437
Test Outcome: test_a_need_outside_the_list_is_not_refused_by_the_outcome_extractor SEG-OUT-3AB07152F013
nodeid: tests/specification/test_outcome_extractor_need_ids.py::test_a_need_outside_the_list_is_not_refused_by_the_outcome_extractor
result: passed
reports: SEG-TS-440
Test Outcome: test_an_outcome_witnesses_a_need_that_is_listed_and_of_a_configured_type SEG-OUT-BF7A53EDC8C4
nodeid: tests/specification/test_outcome_extractor_need_ids.py::test_an_outcome_witnesses_a_need_that_is_listed_and_of_a_configured_type
result: passed
reports: SEG-TS-435
Test Outcome: test_every_listed_identifier_that_names_no_need_is_named_in_one_outcome_error SEG-OUT-013C79D51523
nodeid: tests/specification/test_outcome_extractor_need_ids.py::test_every_listed_identifier_that_names_no_need_is_named_in_one_outcome_error
result: passed
reports: SEG-TS-439
Test Outcome: test_without_types_and_without_a_list_an_outcome_witnesses_every_need SEG-OUT-1720C1CCE941
nodeid: tests/specification/test_outcome_extractor_need_ids.py::test_without_types_and_without_a_list_an_outcome_witnesses_every_need
result: passed
reports: SEG-TS-436
Test Outcome: test_witnesses_run_only_to_the_implementation_needs_of_the_configured_types SEG-OUT-F24B3BA2ADDE
nodeid: tests/specification/test_outcome_extractor_need_ids.py::test_witnesses_run_only_to_the_implementation_needs_of_the_configured_types
result: passed
reports: SEG-TS-434
Test Outcome: test_witnesses_run_only_to_the_listed_implementation_needs SEG-OUT-84CE4D3050BD
nodeid: tests/specification/test_outcome_extractor_need_ids.py::test_witnesses_run_only_to_the_listed_implementation_needs
result: passed
reports: SEG-TS-433

tests/specification/test_outcome_extractor_need_types.py

Test Outcome: test_a_bundle_read_over_a_procedure_need_with_no_configured_types_is_refused SEG-OUT-BDF5E8D14B41
nodeid: tests/specification/test_outcome_extractor_need_types.py::test_a_bundle_read_over_a_procedure_need_with_no_configured_types_is_refused
result: passed
reports: SEG-TS-321
Test Outcome: test_a_bundle_read_over_exports_with_other_types_gives_a_verdict SEG-OUT-2514FCE15D91
nodeid: tests/specification/test_outcome_extractor_need_types.py::test_a_bundle_read_over_exports_with_other_types_gives_a_verdict
result: passed
reports: SEG-TS-320
Test Outcome: test_a_need_of_another_type_does_not_refuse_the_implementation_export SEG-OUT-B1267C3BF8F9
nodeid: tests/specification/test_outcome_extractor_need_types.py::test_a_need_of_another_type_does_not_refuse_the_implementation_export
result: passed
reports: SEG-TS-322
Test Outcome: test_a_need_of_another_type_does_not_refuse_the_test_case_export SEG-OUT-32F050282708
nodeid: tests/specification/test_outcome_extractor_need_types.py::test_a_need_of_another_type_does_not_refuse_the_test_case_export
result: passed
reports: SEG-TS-319
Test Outcome: test_only_needs_of_the_configured_types_are_test_case_needs SEG-OUT-092F58104D63
nodeid: tests/specification/test_outcome_extractor_need_types.py::test_only_needs_of_the_configured_types_are_test_case_needs
result: passed
reports: SEG-TS-317
Test Outcome: test_the_witnesses_come_from_the_implementation_needs_of_the_configured_types SEG-OUT-5B83598C96B5
nodeid: tests/specification/test_outcome_extractor_need_types.py::test_the_witnesses_come_from_the_implementation_needs_of_the_configured_types
result: passed
reports: SEG-TS-323
Test Outcome: test_without_configured_types_every_implementation_need_is_read SEG-OUT-2266AB62033C
nodeid: tests/specification/test_outcome_extractor_need_types.py::test_without_configured_types_every_implementation_need_is_read
result: passed
reports: SEG-TS-324
Test Outcome: test_without_configured_types_every_need_is_a_test_case_need SEG-OUT-3C2F49E5CEAA
nodeid: tests/specification/test_outcome_extractor_need_types.py::test_without_configured_types_every_need_is_a_test_case_need
result: passed
reports: SEG-TS-318

tests/specification/test_proof_show.py

Test Outcome: test_a_package_is_named_by_identifier_by_unique_prefix_or_by_path SEG-OUT-BC9ED970FF13
nodeid: tests/specification/test_proof_show.py::test_a_package_is_named_by_identifier_by_unique_prefix_or_by_path
result: passed
reports: SEG-TS-133
Test Outcome: test_a_package_that_cannot_be_read_gives_exit_status_2 SEG-OUT-A61397CA0625
nodeid: tests/specification/test_proof_show.py::test_a_package_that_cannot_be_read_gives_exit_status_2
result: passed
reports: SEG-TS-140
Test Outcome: test_a_package_without_run_bundle_digests_says_that_none_is_recorded SEG-OUT-CC1BF196AA19
nodeid: tests/specification/test_proof_show.py::test_a_package_without_run_bundle_digests_says_that_none_is_recorded
result: passed
reports: SEG-TS-137
Test Outcome: test_a_prefix_that_names_two_packages_is_refused_with_both_names SEG-OUT-E67AD99411B9
nodeid: tests/specification/test_proof_show.py::test_a_prefix_that_names_two_packages_is_refused_with_both_names
result: passed
reports: SEG-TS-134
Test Outcome: test_proof_show_exits_with_status_0_whatever_the_package_records SEG-OUT-0FA5EE55F372
nodeid: tests/specification/test_proof_show.py::test_proof_show_exits_with_status_0_whatever_the_package_records
result: passed
reports: SEG-TS-139
Test Outcome: test_proof_show_lists_the_specifications_outcomes_and_implementations_of_each_requirement SEG-OUT-72F6BADF50CC
nodeid: tests/specification/test_proof_show.py::test_proof_show_lists_the_specifications_outcomes_and_implementations_of_each_requirement
result: passed
reports: SEG-TS-136
Test Outcome: test_proof_show_reads_a_package_named_by_path_with_no_configuration_and_no_case SEG-OUT-0065CA3425EB
nodeid: tests/specification/test_proof_show.py::test_proof_show_reads_a_package_named_by_path_with_no_configuration_and_no_case
result: passed
reports: SEG-TS-158
Test Outcome: test_proof_show_reads_no_run_bundle_and_no_current_stream SEG-OUT-93458605645B
nodeid: tests/specification/test_proof_show.py::test_proof_show_reads_no_run_bundle_and_no_current_stream
result: passed
reports: SEG-TS-138
Test Outcome: test_proof_show_reports_what_the_package_records_about_itself SEG-OUT-F293110E8824
nodeid: tests/specification/test_proof_show.py::test_proof_show_reports_what_the_package_records_about_itself
result: passed
reports: SEG-TS-135

tests/specification/test_proof_verbs.py

Test Outcome: test_proof_check_and_proof_generate_are_verbs_of_their_own SEG-OUT-36FF72B66526
nodeid: tests/specification/test_proof_verbs.py::test_proof_check_and_proof_generate_are_verbs_of_their_own
result: passed
reports: SEG-TS-149
Test Outcome: test_proof_show_and_proof_verify_are_verbs_of_their_own SEG-OUT-6E0CEBE555BC
nodeid: tests/specification/test_proof_verbs.py::test_proof_show_and_proof_verify_are_verbs_of_their_own
result: passed
reports: SEG-TS-150
Test Outcome: test_the_design_root_of_a_package_is_recomputed_from_its_own_design_consistency_proof SEG-OUT-ACD94CCC3FE8
nodeid: tests/specification/test_proof_verbs.py::test_the_design_root_of_a_package_is_recomputed_from_its_own_design_consistency_proof
result: passed
reports: SEG-TS-151

tests/specification/test_proof_verifier_bundles.py

Test Outcome: test_a_bundle_whose_digest_the_package_does_not_list_is_a_mismatch SEG-OUT-BF9D190DEFEF
nodeid: tests/specification/test_proof_verifier_bundles.py::test_a_bundle_whose_digest_the_package_does_not_list_is_a_mismatch
result: passed
reports: SEG-TS-127
Test Outcome: test_a_design_edge_the_readers_do_not_supply_leaves_the_evidence_unjudged SEG-OUT-AD5622CBB046
nodeid: tests/specification/test_proof_verifier_bundles.py::test_a_design_edge_the_readers_do_not_supply_leaves_the_evidence_unjudged
result: passed
reports: SEG-TS-130
Test Outcome: test_a_design_node_the_readers_do_not_supply_leaves_the_evidence_unjudged SEG-OUT-E3FB768F4903
nodeid: tests/specification/test_proof_verifier_bundles.py::test_a_design_node_the_readers_do_not_supply_leaves_the_evidence_unjudged
result: passed
reports: SEG-TS-129
Test Outcome: test_a_listed_bundle_that_is_not_given_leaves_the_evidence_unjudged SEG-OUT-8B52C3B9EB53
nodeid: tests/specification/test_proof_verifier_bundles.py::test_a_listed_bundle_that_is_not_given_leaves_the_evidence_unjudged
result: passed
reports: SEG-TS-128
Test Outcome: test_the_evidence_rebuilt_from_the_bundles_must_equal_the_recorded_evidence SEG-OUT-12AAFC8A10D7
nodeid: tests/specification/test_proof_verifier_bundles.py::test_the_evidence_rebuilt_from_the_bundles_must_equal_the_recorded_evidence
result: passed
reports: SEG-TS-131
Test Outcome: test_the_snapshot_identifier_must_follow_from_the_rebuilt_scope SEG-OUT-7F6B1E16744E
nodeid: tests/specification/test_proof_verifier_bundles.py::test_the_snapshot_identifier_must_follow_from_the_rebuilt_scope
result: passed
reports: SEG-TS-132

tests/specification/test_proof_verifier_package.py

Test Outcome: test_a_changed_design_root_input_fails_the_root_check SEG-OUT-A17CF7ED2A88
nodeid: tests/specification/test_proof_verifier_package.py::test_a_changed_design_root_input_fails_the_root_check
result: passed
reports: SEG-TS-120
Test Outcome: test_a_coverage_report_that_lists_an_unready_edge_fails_the_unblocked_check SEG-OUT-ED112537A39E
nodeid: tests/specification/test_proof_verifier_package.py::test_a_coverage_report_that_lists_an_unready_edge_fails_the_unblocked_check
result: passed
reports: SEG-TS-156
Test Outcome: test_a_coverage_report_that_records_a_blocked_scope_fails_the_unblocked_check SEG-OUT-461322055AD3
nodeid: tests/specification/test_proof_verifier_package.py::test_a_coverage_report_that_records_a_blocked_scope_fails_the_unblocked_check
result: passed
reports: SEG-TS-124
Test Outcome: test_a_coverage_report_with_a_blocking_finding_fails_the_unblocked_check SEG-OUT-1E5E436AE52A
nodeid: tests/specification/test_proof_verifier_package.py::test_a_coverage_report_with_a_blocking_finding_fails_the_unblocked_check
result: passed
reports: SEG-TS-157
Test Outcome: test_a_design_edge_without_a_binding_review_event_fails_the_affirmations_check SEG-OUT-1B98661CC6E2
nodeid: tests/specification/test_proof_verifier_package.py::test_a_design_edge_without_a_binding_review_event_fails_the_affirmations_check
result: passed
reports: SEG-TS-126
Test Outcome: test_a_member_scope_that_is_not_what_the_documents_name_fails_the_agreement_check SEG-OUT-15C7323C357F
nodeid: tests/specification/test_proof_verifier_package.py::test_a_member_scope_that_is_not_what_the_documents_name_fails_the_agreement_check
result: passed
reports: SEG-TS-155
Test Outcome: test_a_snapshot_identifier_that_is_not_the_directory_name_fails_the_identity_check SEG-OUT-F172EBCD079C
nodeid: tests/specification/test_proof_verifier_package.py::test_a_snapshot_identifier_that_is_not_the_directory_name_fails_the_identity_check
result: passed
reports: SEG-TS-152
Test Outcome: test_an_outcome_of_another_revision_fails_the_agreement_check SEG-OUT-C4329F77A42F
nodeid: tests/specification/test_proof_verifier_package.py::test_an_outcome_of_another_revision_fails_the_agreement_check
result: passed
reports: SEG-TS-153
Test Outcome: test_an_outcome_of_the_record_that_is_also_stale_fails_the_agreement_check SEG-OUT-ED49FAF04EC6
nodeid: tests/specification/test_proof_verifier_package.py::test_an_outcome_of_the_record_that_is_also_stale_fails_the_agreement_check
result: passed
reports: SEG-TS-154
Test Outcome: test_an_outcome_or_finding_outside_the_member_scope_fails_the_agreement_check SEG-OUT-E4AA9A4559A6
nodeid: tests/specification/test_proof_verifier_package.py::test_an_outcome_or_finding_outside_the_member_scope_fails_the_agreement_check
result: passed
reports: SEG-TS-122
Test Outcome: test_documents_that_disagree_on_what_the_package_is_fail_the_identity_check SEG-OUT-E577579D72C4
nodeid: tests/specification/test_proof_verifier_package.py::test_documents_that_disagree_on_what_the_package_is_fail_the_identity_check
result: passed
reports: SEG-TS-121
Test Outcome: test_every_design_edge_bound_by_a_review_event_passes_the_affirmations_check SEG-OUT-A3EA9EB48445
nodeid: tests/specification/test_proof_verifier_package.py::test_every_design_edge_bound_by_a_review_event_passes_the_affirmations_check
result: passed
reports: SEG-TS-125
Test Outcome: test_records_that_disagree_on_set_aside_skipped_or_excused_outcomes_fail_the_agreement_check SEG-OUT-50660DD21DD9
nodeid: tests/specification/test_proof_verifier_package.py::test_records_that_disagree_on_set_aside_skipped_or_excused_outcomes_fail_the_agreement_check
result: passed
reports: SEG-TS-123
Test Outcome: test_the_design_root_of_a_package_is_recomputed_and_equals_the_recorded_root SEG-OUT-770FCCD165A4
nodeid: tests/specification/test_proof_verifier_package.py::test_the_design_root_of_a_package_is_recomputed_and_equals_the_recorded_root
result: passed
reports: SEG-TS-119

tests/specification/test_proof_verify_cli.py

Test Outcome: test_a_check_that_cannot_be_judged_gives_exit_status_2_when_nothing_failed SEG-OUT-6D1C71E8A16B
nodeid: tests/specification/test_proof_verify_cli.py::test_a_check_that_cannot_be_judged_gives_exit_status_2_when_nothing_failed
result: passed
reports: SEG-TS-145
Test Outcome: test_a_failed_check_gives_exit_status_1_even_when_another_check_is_not_judged SEG-OUT-3C71459A622A
nodeid: tests/specification/test_proof_verify_cli.py::test_a_failed_check_gives_exit_status_1_even_when_another_check_is_not_judged
result: passed
reports: SEG-TS-144
Test Outcome: test_a_package_whose_checks_all_pass_gives_exit_status_0 SEG-OUT-20644A8EAC31
nodeid: tests/specification/test_proof_verify_cli.py::test_a_package_whose_checks_all_pass_gives_exit_status_0
result: passed
reports: SEG-TS-146
Test Outcome: test_proof_show_and_proof_verify_write_nothing SEG-OUT-23E321148B57
nodeid: tests/specification/test_proof_verify_cli.py::test_proof_show_and_proof_verify_write_nothing
result: passed
reports: SEG-TS-148
Test Outcome: test_proof_verify_checks_the_affirmations_against_the_case_of_the_invocation SEG-OUT-63C6FCA33C27
nodeid: tests/specification/test_proof_verify_cli.py::test_proof_verify_checks_the_affirmations_against_the_case_of_the_invocation
result: passed
reports: SEG-TS-143
Test Outcome: test_proof_verify_gives_the_verifier_exactly_the_bundles_the_operator_names SEG-OUT-BAD3CBCE1E90
nodeid: tests/specification/test_proof_verify_cli.py::test_proof_verify_gives_the_verifier_exactly_the_bundles_the_operator_names
result: passed
reports: SEG-TS-142
Test Outcome: test_proof_verify_judges_a_package_named_by_path_with_no_configuration_and_no_case SEG-OUT-680C263A4DFF
nodeid: tests/specification/test_proof_verify_cli.py::test_proof_verify_judges_a_package_named_by_path_with_no_configuration_and_no_case
result: passed
reports: SEG-TS-159
Test Outcome: test_proof_verify_names_every_check_and_the_checks_it_did_not_make SEG-OUT-4CD4F9FB46D6
nodeid: tests/specification/test_proof_verify_cli.py::test_proof_verify_names_every_check_and_the_checks_it_did_not_make
result: passed
reports: SEG-TS-141
Test Outcome: test_proof_verify_obtains_no_implementation_revision SEG-OUT-6AD674137D2D
nodeid: tests/specification/test_proof_verify_cli.py::test_proof_verify_obtains_no_implementation_revision
result: passed
reports: SEG-TS-147

tests/specification/test_reader_parent_field_and_source_map.py

Test Outcome: test_a_content_hash_covers_the_parent_links_of_the_configured_field SEG-OUT-786EFE1A7930
nodeid: tests/specification/test_reader_parent_field_and_source_map.py::test_a_content_hash_covers_the_parent_links_of_the_configured_field
result: passed
reports: SEG-TS-184
Test Outcome: test_a_docname_the_source_map_does_not_cover_is_refused SEG-OUT-AF211F79B307
nodeid: tests/specification/test_reader_parent_field_and_source_map.py::test_a_docname_the_source_map_does_not_cover_is_refused
result: passed
reports: SEG-TS-163
Test Outcome: test_a_requirement_is_anchored_at_its_mapped_source_file SEG-OUT-65FDF716E6E0
nodeid: tests/specification/test_reader_parent_field_and_source_map.py::test_a_requirement_is_anchored_at_its_mapped_source_file
result: passed
reports: SEG-TS-162
Test Outcome: test_a_requirement_is_anchored_in_the_repository_of_the_reader SEG-OUT-2B50A95EC1E8
nodeid: tests/specification/test_reader_parent_field_and_source_map.py::test_a_requirement_is_anchored_in_the_repository_of_the_reader
result: passed
reports: SEG-TS-187
Test Outcome: test_parent_links_come_from_the_configured_field SEG-OUT-7C5642861DC5
nodeid: tests/specification/test_reader_parent_field_and_source_map.py::test_parent_links_come_from_the_configured_field
result: passed
reports: SEG-TS-160
Test Outcome: test_refines_edges_come_from_declared_parent_links_only SEG-OUT-6346B7D70095
nodeid: tests/specification/test_reader_parent_field_and_source_map.py::test_refines_edges_come_from_declared_parent_links_only
result: passed
reports: SEG-TS-186
Test Outcome: test_the_order_of_parent_links_does_not_change_the_hash SEG-OUT-5F9513B0B83A
nodeid: tests/specification/test_reader_parent_field_and_source_map.py::test_the_order_of_parent_links_does_not_change_the_hash
result: passed
reports: SEG-TS-185
Test Outcome: test_the_parent_field_defaults_to_refines SEG-OUT-EDD4E37E2376
nodeid: tests/specification/test_reader_parent_field_and_source_map.py::test_the_parent_field_defaults_to_refines
result: passed
reports: SEG-TS-161

tests/specification/test_repository_path_refusal.py

Test Outcome: test_a_directory_that_is_not_a_version_control_repository_is_a_valid_path SEG-OUT-0EC146C14FF4
nodeid: tests/specification/test_repository_path_refusal.py::test_a_directory_that_is_not_a_version_control_repository_is_a_valid_path
result: passed
reports: SEG-TS-408
Test Outcome: test_a_repository_path_that_does_not_exist_is_reported_once SEG-OUT-6C13FAC6A4C6
nodeid: tests/specification/test_repository_path_refusal.py::test_a_repository_path_that_does_not_exist_is_reported_once
result: passed
reports: SEG-TS-404
Test Outcome: test_a_repository_path_that_is_a_file_is_reported_once SEG-OUT-FF2DA0D36C9A
nodeid: tests/specification/test_repository_path_refusal.py::test_a_repository_path_that_is_a_file_is_reported_once
result: passed
reports: SEG-TS-405
Test Outcome: test_a_repository_that_only_the_requirements_reader_names_is_not_checked SEG-OUT-91771C35F021
nodeid: tests/specification/test_repository_path_refusal.py::test_a_repository_that_only_the_requirements_reader_names_is_not_checked
result: passed
reports: SEG-TS-409
Test Outcome: test_a_world_with_three_plain_directories_is_the_control SEG-OUT-BEFF3114AE89
nodeid: tests/specification/test_repository_path_refusal.py::test_a_world_with_three_plain_directories_is_the_control
result: passed
reports: SEG-TS-403
Test Outcome: test_case_sync_over_a_missing_repository_exits_2_names_it_once_and_writes_nothing SEG-OUT-F38AC3DB0D1F
nodeid: tests/specification/test_repository_path_refusal.py::test_case_sync_over_a_missing_repository_exits_2_names_it_once_and_writes_nothing
result: passed
reports: SEG-TS-410
Test Outcome: test_one_repository_that_both_streams_read_through_is_reported_once SEG-OUT-04D51673CE5A
nodeid: tests/specification/test_repository_path_refusal.py::test_one_repository_that_both_streams_read_through_is_reported_once
result: passed
reports: SEG-TS-406
Test Outcome: test_several_bad_repositories_are_listed_sorted_by_configured_name SEG-OUT-579B7C53A23A
nodeid: tests/specification/test_repository_path_refusal.py::test_several_bad_repositories_are_listed_sorted_by_configured_name
result: passed
reports: SEG-TS-414
Test Outcome: test_the_repository_line_comes_before_any_line_about_a_need SEG-OUT-F42815811AE5
nodeid: tests/specification/test_repository_path_refusal.py::test_the_repository_line_comes_before_any_line_about_a_need
result: passed
reports: SEG-TS-411
Test Outcome: test_two_repositories_that_cannot_be_used_are_both_reported_in_one_error SEG-OUT-990D62768A24
nodeid: tests/specification/test_repository_path_refusal.py::test_two_repositories_that_cannot_be_used_are_both_reported_in_one_error
result: passed
reports: SEG-TS-407

tests/specification/test_repository_reads_decoy_case.py

Test Outcome: test_edge_show_does_not_take_an_enclosing_repository_for_the_case SEG-OUT-EB9DC97E5AFC
nodeid: tests/specification/test_repository_reads_decoy_case.py::test_edge_show_does_not_take_an_enclosing_repository_for_the_case
result: passed
reports: SEG-TS-298
Test Outcome: test_edge_show_names_the_recording_commit_of_the_case_whatever_the_environment_names[GIT_COMMON_DIR] SEG-OUT-F7DE9A3E9FE4
nodeid: tests/specification/test_repository_reads_decoy_case.py::test_edge_show_names_the_recording_commit_of_the_case_whatever_the_environment_names[GIT_COMMON_DIR]
result: passed
Test Outcome: test_edge_show_names_the_recording_commit_of_the_case_whatever_the_environment_names[GIT_DIR] SEG-OUT-5E2E1A72A207
nodeid: tests/specification/test_repository_reads_decoy_case.py::test_edge_show_names_the_recording_commit_of_the_case_whatever_the_environment_names[GIT_DIR]
result: passed
Test Outcome: test_edge_show_names_the_recording_commit_of_the_case_whatever_the_environment_names[GIT_OBJECT_DIRECTORY] SEG-OUT-3434B85BA77E
nodeid: tests/specification/test_repository_reads_decoy_case.py::test_edge_show_names_the_recording_commit_of_the_case_whatever_the_environment_names[GIT_OBJECT_DIRECTORY]
result: passed
Test Outcome: test_edge_show_names_the_recording_commit_of_the_case_whatever_the_environment_names[GIT_WORK_TREE] SEG-OUT-6FC8EC0148BE
nodeid: tests/specification/test_repository_reads_decoy_case.py::test_edge_show_names_the_recording_commit_of_the_case_whatever_the_environment_names[GIT_WORK_TREE]
result: passed

tests/specification/test_repository_reads_decoy_content.py

Test Outcome: test_case_sync_does_not_borrow_objects_from_a_repository_the_environment_names SEG-OUT-4DB3F121F2BB
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_case_sync_does_not_borrow_objects_from_a_repository_the_environment_names
result: passed
reports: SEG-TS-293
Test Outcome: test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_COMMON_DIR] SEG-OUT-61BD44E4F73D
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_COMMON_DIR]
result: passed
Test Outcome: test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_DIR] SEG-OUT-A7D9F5F5FF73
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_DIR]
result: passed
Test Outcome: test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_INDEX_FILE] SEG-OUT-74362CE8D046
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_INDEX_FILE]
result: passed
Test Outcome: test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_OBJECT_DIRECTORY] SEG-OUT-4D40F9E1BECC
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_OBJECT_DIRECTORY]
result: passed
Test Outcome: test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_WORK_TREE] SEG-OUT-82248FF649F6
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_case_sync_records_the_revision_of_the_repository_at_the_path[GIT_WORK_TREE]
result: passed
Test Outcome: test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_COMMON_DIR] SEG-OUT-5274E5E32DC9
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_COMMON_DIR]
result: passed
Test Outcome: test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_DIR] SEG-OUT-A68BC0505D6B
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_DIR]
result: passed
Test Outcome: test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_INDEX_FILE] SEG-OUT-356C0976F305
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_INDEX_FILE]
result: passed
Test Outcome: test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_OBJECT_DIRECTORY] SEG-OUT-AFBBEBC14B04
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_OBJECT_DIRECTORY]
result: passed
Test Outcome: test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_WORK_TREE] SEG-OUT-4A9397776B4F
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_affirm_records_the_revision_of_the_repository_at_the_path[GIT_WORK_TREE]
result: passed
Test Outcome: test_edge_affirm_still_refuses_a_dirty_repository_with_a_variable_set[GIT_DIR] SEG-OUT-58E3D3A063CB
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_affirm_still_refuses_a_dirty_repository_with_a_variable_set[GIT_DIR]
result: passed
Test Outcome: test_edge_affirm_still_refuses_a_dirty_repository_with_a_variable_set[GIT_INDEX_FILE] SEG-OUT-342C8B1FC470
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_affirm_still_refuses_a_dirty_repository_with_a_variable_set[GIT_INDEX_FILE]
result: passed
Test Outcome: test_edge_affirm_still_refuses_a_dirty_repository_with_a_variable_set[GIT_WORK_TREE] SEG-OUT-3D048FAA16A6
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_affirm_still_refuses_a_dirty_repository_with_a_variable_set[GIT_WORK_TREE]
result: passed
Test Outcome: test_edge_show_reads_the_before_content_from_the_repository_at_the_path[GIT_COMMON_DIR] SEG-OUT-0EC7E4E92F60
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_show_reads_the_before_content_from_the_repository_at_the_path[GIT_COMMON_DIR]
result: passed
Test Outcome: test_edge_show_reads_the_before_content_from_the_repository_at_the_path[GIT_DIR] SEG-OUT-3E2FB1547585
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_show_reads_the_before_content_from_the_repository_at_the_path[GIT_DIR]
result: passed
Test Outcome: test_edge_show_reads_the_before_content_from_the_repository_at_the_path[GIT_OBJECT_DIRECTORY] SEG-OUT-57C33C9FFEF4
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_edge_show_reads_the_before_content_from_the_repository_at_the_path[GIT_OBJECT_DIRECTORY]
result: passed
Test Outcome: test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_COMMON_DIR] SEG-OUT-6DBE45CEB48B
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_COMMON_DIR]
result: passed
Test Outcome: test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_DIR] SEG-OUT-91F7963A6724
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_DIR]
result: passed
Test Outcome: test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_INDEX_FILE] SEG-OUT-4E9B4784C709
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_INDEX_FILE]
result: passed
Test Outcome: test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_OBJECT_DIRECTORY] SEG-OUT-F1A07E859DDD
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_OBJECT_DIRECTORY]
result: passed
Test Outcome: test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_WORK_TREE] SEG-OUT-C4C113615F58
nodeid: tests/specification/test_repository_reads_decoy_content.py::test_node_show_reports_the_state_of_the_repository_at_the_path[GIT_WORK_TREE]
result: passed

tests/specification/test_repository_reads_decoy_no_write.py

Test Outcome: test_case_sync_writes_nothing_in_either_repository_with_a_variable_set[GIT_DIR] SEG-OUT-C9BD4265E0B5
nodeid: tests/specification/test_repository_reads_decoy_no_write.py::test_case_sync_writes_nothing_in_either_repository_with_a_variable_set[GIT_DIR]
result: passed
Test Outcome: test_case_sync_writes_nothing_in_either_repository_with_a_variable_set[GIT_INDEX_FILE] SEG-OUT-5029B50D342D
nodeid: tests/specification/test_repository_reads_decoy_no_write.py::test_case_sync_writes_nothing_in_either_repository_with_a_variable_set[GIT_INDEX_FILE]
result: passed
Test Outcome: test_case_sync_writes_nothing_in_either_repository_with_a_variable_set[GIT_WORK_TREE] SEG-OUT-87E4D6F0CE24
nodeid: tests/specification/test_repository_reads_decoy_no_write.py::test_case_sync_writes_nothing_in_either_repository_with_a_variable_set[GIT_WORK_TREE]
result: passed
Test Outcome: test_edge_affirm_and_node_show_write_nothing_in_either_repository_with_a_variable_set[GIT_DIR] SEG-OUT-5A4DA785E93E
nodeid: tests/specification/test_repository_reads_decoy_no_write.py::test_edge_affirm_and_node_show_write_nothing_in_either_repository_with_a_variable_set[GIT_DIR]
result: passed
Test Outcome: test_edge_affirm_and_node_show_write_nothing_in_either_repository_with_a_variable_set[GIT_INDEX_FILE] SEG-OUT-3F1720432197
nodeid: tests/specification/test_repository_reads_decoy_no_write.py::test_edge_affirm_and_node_show_write_nothing_in_either_repository_with_a_variable_set[GIT_INDEX_FILE]
result: passed
Test Outcome: test_edge_affirm_and_node_show_write_nothing_in_either_repository_with_a_variable_set[GIT_WORK_TREE] SEG-OUT-A504C19C01A4
nodeid: tests/specification/test_repository_reads_decoy_no_write.py::test_edge_affirm_and_node_show_write_nothing_in_either_repository_with_a_variable_set[GIT_WORK_TREE]
result: passed
Test Outcome: test_edge_show_writes_nothing_under_the_git_directory_of_the_case_with_a_variable_set[GIT_DIR] SEG-OUT-C76D95B23AE0
nodeid: tests/specification/test_repository_reads_decoy_no_write.py::test_edge_show_writes_nothing_under_the_git_directory_of_the_case_with_a_variable_set[GIT_DIR]
result: passed
Test Outcome: test_edge_show_writes_nothing_under_the_git_directory_of_the_case_with_a_variable_set[GIT_WORK_TREE] SEG-OUT-A2942074C72C
nodeid: tests/specification/test_repository_reads_decoy_no_write.py::test_edge_show_writes_nothing_under_the_git_directory_of_the_case_with_a_variable_set[GIT_WORK_TREE]
result: passed

tests/specification/test_repository_reads_parts.py

Test Outcome: test_a_failing_call_fails_the_read_of_a_repository_that_one_call_reads SEG-OUT-865CACC04069
nodeid: tests/specification/test_repository_reads_parts.py::test_a_failing_call_fails_the_read_of_a_repository_that_one_call_reads
result: passed
reports: SEG-TS-312
Test Outcome: test_a_read_in_parts_gives_every_path_to_exactly_one_call_and_no_call_too_many SEG-OUT-FC9EF8120506
nodeid: tests/specification/test_repository_reads_parts.py::test_a_read_in_parts_gives_every_path_to_exactly_one_call_and_no_call_too_many
result: passed
reports: SEG-TS-309
Test Outcome: test_a_read_of_more_paths_than_one_call_takes_gives_the_answer_of_one_call SEG-OUT-1D7BCC7F61CF
nodeid: tests/specification/test_repository_reads_parts.py::test_a_read_of_more_paths_than_one_call_takes_gives_the_answer_of_one_call
result: passed
reports: SEG-TS-308
Test Outcome: test_a_read_of_so_many_paths_that_the_system_refuses_the_call_still_gives_revisions SEG-OUT-54C6642A3089
nodeid: tests/specification/test_repository_reads_parts.py::test_a_read_of_so_many_paths_that_the_system_refuses_the_call_still_gives_revisions
result: passed
reports: SEG-TS-311
Test Outcome: test_case_sync_counts_the_repository_as_unreadable_when_a_later_part_fails[ls-tree] SEG-OUT-6F901DD0C873
nodeid: tests/specification/test_repository_reads_parts.py::test_case_sync_counts_the_repository_as_unreadable_when_a_later_part_fails[ls-tree]
result: passed
Test Outcome: test_case_sync_counts_the_repository_as_unreadable_when_a_later_part_fails[status] SEG-OUT-6A82DFAFE28F
nodeid: tests/specification/test_repository_reads_parts.py::test_case_sync_counts_the_repository_as_unreadable_when_a_later_part_fails[status]
result: passed
Test Outcome: test_node_show_reads_the_paths_of_one_node_in_parts_and_reports_the_same_dirty_path SEG-OUT-D5D7EEFB79AD
nodeid: tests/specification/test_repository_reads_parts.py::test_node_show_reads_the_paths_of_one_node_in_parts_and_reports_the_same_dirty_path
result: passed
reports: SEG-TS-310
Test Outcome: test_node_show_reports_the_repository_as_unreadable_when_a_later_part_fails SEG-OUT-EF7BA18D8642
nodeid: tests/specification/test_repository_reads_parts.py::test_node_show_reports_the_repository_as_unreadable_when_a_later_part_fails
result: passed
reports: SEG-TS-314

tests/specification/test_repository_reads_stand_in.py

Test Outcome: test_a_repository_read_keeps_the_ceiling_and_the_config_variables SEG-OUT-8FE3E68724C2
nodeid: tests/specification/test_repository_reads_stand_in.py::test_a_repository_read_keeps_the_ceiling_and_the_config_variables
result: passed
reports: SEG-TS-307
Test Outcome: test_case_sync_runs_git_without_the_variables_that_name_a_repository SEG-OUT-F034B448DCCB
nodeid: tests/specification/test_repository_reads_stand_in.py::test_case_sync_runs_git_without_the_variables_that_name_a_repository
result: passed
reports: SEG-TS-302
Test Outcome: test_edge_affirm_runs_git_without_the_variables_that_name_a_repository SEG-OUT-287026A09738
nodeid: tests/specification/test_repository_reads_stand_in.py::test_edge_affirm_runs_git_without_the_variables_that_name_a_repository
result: passed
reports: SEG-TS-303
Test Outcome: test_edge_show_runs_the_before_content_read_without_the_variables_that_name_a_repository SEG-OUT-7BF2BCA6DD45
nodeid: tests/specification/test_repository_reads_stand_in.py::test_edge_show_runs_the_before_content_read_without_the_variables_that_name_a_repository
result: passed
reports: SEG-TS-305
Test Outcome: test_edge_show_runs_the_case_history_reads_without_the_variables_that_name_a_repository SEG-OUT-A0FD2A7DD9AB
nodeid: tests/specification/test_repository_reads_stand_in.py::test_edge_show_runs_the_case_history_reads_without_the_variables_that_name_a_repository
result: passed
reports: SEG-TS-306
Test Outcome: test_node_show_runs_git_without_the_variables_that_name_a_repository SEG-OUT-FC5663933F69
nodeid: tests/specification/test_repository_reads_stand_in.py::test_node_show_runs_git_without_the_variables_that_name_a_repository
result: passed
reports: SEG-TS-304
Test Outcome: test_proof_check_reads_the_gate_revision_without_the_variables_that_name_a_repository SEG-OUT-8859FBD240B1
nodeid: tests/specification/test_repository_reads_stand_in.py::test_proof_check_reads_the_gate_revision_without_the_variables_that_name_a_repository
result: passed
reports: SEG-TS-315

tests/specification/test_requirements_reader.py

Test Outcome: test_a_requirement_is_identified_by_its_need_identifier_verbatim SEG-OUT-7099DDD684D9
nodeid: tests/specification/test_requirements_reader.py::test_a_requirement_is_identified_by_its_need_identifier_verbatim
result: passed
reports: SEG-TS-012
Test Outcome: test_a_requirements_anchor_names_its_source_file_and_its_need SEG-OUT-29A3C899243D
nodeid: tests/specification/test_requirements_reader.py::test_a_requirements_anchor_names_its_source_file_and_its_need
result: passed
reports: SEG-TS-017
Test Outcome: test_a_requirements_content_hash_covers_its_authored_fields_only SEG-OUT-BC4B01B2EECC
nodeid: tests/specification/test_requirements_reader.py::test_a_requirements_content_hash_covers_its_authored_fields_only
result: passed
reports: SEG-TS-013
Test Outcome: test_an_export_carrying_a_build_timestamp_is_refused SEG-OUT-C0637BF41059
nodeid: tests/specification/test_requirements_reader.py::test_an_export_carrying_a_build_timestamp_is_refused
result: passed
reports: SEG-TS-016
Test Outcome: test_only_configured_need_types_become_requirements SEG-OUT-8DA5BCC72549
nodeid: tests/specification/test_requirements_reader.py::test_only_configured_need_types_become_requirements
result: passed
reports: SEG-TS-011
Test Outcome: test_refines_edges_come_from_declared_links_only SEG-OUT-1A8CEBAA4D08
nodeid: tests/specification/test_requirements_reader.py::test_refines_edges_come_from_declared_links_only
result: passed
reports: SEG-TS-015
Test Outcome: test_the_order_of_refines_links_does_not_change_the_content_hash SEG-OUT-C663F828BADB
nodeid: tests/specification/test_requirements_reader.py::test_the_order_of_refines_links_does_not_change_the_content_hash
result: passed
reports: SEG-TS-014
Test Outcome: test_the_producers_repository_name_is_loaded_from_the_file SEG-OUT-F7E558FB5B8A
nodeid: tests/specification/test_requirements_reader.py::test_the_producers_repository_name_is_loaded_from_the_file
result: passed
reports: SEG-TS-018
Test Outcome: test_the_requirement_export_location_is_loaded_relative_to_the_file SEG-OUT-475C3D1E2731
nodeid: tests/specification/test_requirements_reader.py::test_the_requirement_export_location_is_loaded_relative_to_the_file
result: passed
reports: SEG-TS-019
Test Outcome: test_the_requirement_source_directory_is_loaded_relative_to_the_file SEG-OUT-6EBB18340527
nodeid: tests/specification/test_requirements_reader.py::test_the_requirement_source_directory_is_loaded_relative_to_the_file
result: passed
reports: SEG-TS-021
Test Outcome: test_the_requirement_types_are_loaded_as_a_set_of_strings SEG-OUT-8B4B92828686
nodeid: tests/specification/test_requirements_reader.py::test_the_requirement_types_are_loaded_as_a_set_of_strings
result: passed
reports: SEG-TS-020

tests/specification/test_run_bundle_cli.py

Test Outcome: test_a_bundle_named_twice_is_read_once SEG-OUT-AB6C63A99E77
nodeid: tests/specification/test_run_bundle_cli.py::test_a_bundle_named_twice_is_read_once
result: passed
reports: SEG-TS-113
Test Outcome: test_a_dangling_evidence_edge_gives_the_negative_status_verdict SEG-OUT-FD6761F05BF7
nodeid: tests/specification/test_run_bundle_cli.py::test_a_dangling_evidence_edge_gives_the_negative_status_verdict
result: passed
reports: SEG-TS-082
Test Outcome: test_a_named_bundle_and_a_given_stream_cannot_be_judged_together SEG-OUT-780B327DBB94
nodeid: tests/specification/test_run_bundle_cli.py::test_a_named_bundle_and_a_given_stream_cannot_be_judged_together
result: passed
reports: SEG-TS-114
Test Outcome: test_a_named_bundle_needs_a_test_case_export SEG-OUT-7E7F76B6B54E
nodeid: tests/specification/test_run_bundle_cli.py::test_a_named_bundle_needs_a_test_case_export
result: passed
reports: SEG-TS-116
Test Outcome: test_a_refused_bundle_gives_exit_status_2_and_no_verdict SEG-OUT-8C2D27C52581
nodeid: tests/specification/test_run_bundle_cli.py::test_a_refused_bundle_gives_exit_status_2_and_no_verdict
result: passed
reports: SEG-TS-078
Test Outcome: test_a_refused_store_read_is_a_request_the_command_cannot_judge SEG-OUT-AB177B2F6C9B
nodeid: tests/specification/test_run_bundle_cli.py::test_a_refused_store_read_is_a_request_the_command_cannot_judge
result: passed
reports: SEG-TS-090
Test Outcome: test_a_stream_without_an_outcome_needs_no_revision SEG-OUT-F5AE751C9146
nodeid: tests/specification/test_run_bundle_cli.py::test_a_stream_without_an_outcome_needs_no_revision
result: passed
reports: SEG-TS-089
Test Outcome: test_graph_check_counts_pending_strong_edges_only SEG-OUT-13ABB04EA7DD
nodeid: tests/specification/test_run_bundle_cli.py::test_graph_check_counts_pending_strong_edges_only
result: passed
reports: SEG-TS-091
Test Outcome: test_graph_status_counts_the_dangling_evidence_edges SEG-OUT-13C48606821A
nodeid: tests/specification/test_run_bundle_cli.py::test_graph_status_counts_the_dangling_evidence_edges
result: passed
reports: SEG-TS-083
Test Outcome: test_graph_status_lists_strong_edges_only SEG-OUT-76667636880F
nodeid: tests/specification/test_run_bundle_cli.py::test_graph_status_lists_strong_edges_only
result: passed
reports: SEG-TS-084
Test Outcome: test_graph_status_refuses_a_dirty_implementation_repository SEG-OUT-6260A1003A80
nodeid: tests/specification/test_run_bundle_cli.py::test_graph_status_refuses_a_dirty_implementation_repository
result: passed
reports: SEG-TS-086
Test Outcome: test_graph_status_reports_the_evidence_apart_with_its_counts SEG-OUT-F58B756016BA
nodeid: tests/specification/test_run_bundle_cli.py::test_graph_status_reports_the_evidence_apart_with_its_counts
result: passed
reports: SEG-TS-081
Test Outcome: test_no_obtainable_revision_cannot_be_judged SEG-OUT-E319DB6AE498
nodeid: tests/specification/test_run_bundle_cli.py::test_no_obtainable_revision_cannot_be_judged
result: passed
reports: SEG-TS-088
Test Outcome: test_pending_strong_edges_leave_the_status_verdict_positive SEG-OUT-33C412C4514F
nodeid: tests/specification/test_run_bundle_cli.py::test_pending_strong_edges_leave_the_status_verdict_positive
result: passed
reports: SEG-TS-085
Test Outcome: test_proof_verbs_refuse_a_dirty_implementation_repository SEG-OUT-85FACA852812
nodeid: tests/specification/test_run_bundle_cli.py::test_proof_verbs_refuse_a_dirty_implementation_repository
result: passed
reports: SEG-TS-087
Test Outcome: test_the_other_verbs_take_no_run_bundle SEG-OUT-593921F41331
nodeid: tests/specification/test_run_bundle_cli.py::test_the_other_verbs_take_no_run_bundle
result: passed
reports: SEG-TS-079
Test Outcome: test_the_verbs_that_judge_evidence_include_exactly_the_named_bundles SEG-OUT-FA682213197F
nodeid: tests/specification/test_run_bundle_cli.py::test_the_verbs_that_judge_evidence_include_exactly_the_named_bundles
result: passed
reports: SEG-TS-080

tests/specification/test_run_bundle_digest.py

Test Outcome: test_a_bundle_digest_is_the_sha256_of_its_file_list_by_path_and_content SEG-OUT-435E0513D62F
nodeid: tests/specification/test_run_bundle_digest.py::test_a_bundle_digest_is_the_sha256_of_its_file_list_by_path_and_content
result: passed
reports: SEG-TS-067
Test Outcome: test_a_changed_byte_a_renamed_file_or_a_new_file_changes_the_digest SEG-OUT-18485E7186F4
nodeid: tests/specification/test_run_bundle_digest.py::test_a_changed_byte_a_renamed_file_or_a_new_file_changes_the_digest
result: passed
reports: SEG-TS-068

tests/specification/test_run_bundle_extractor.py

Test Outcome: test_a_bundle_with_no_readable_run_artifact_is_refused SEG-OUT-54820D799207
nodeid: tests/specification/test_run_bundle_extractor.py::test_a_bundle_with_no_readable_run_artifact_is_refused
result: passed
reports: SEG-TS-073
Test Outcome: test_a_configuration_that_names_a_run_is_refused SEG-OUT-1B3614F9CE1B
nodeid: tests/specification/test_run_bundle_extractor.py::test_a_configuration_that_names_a_run_is_refused
result: passed
reports: SEG-TS-115
Test Outcome: test_a_path_that_is_not_a_directory_is_refused SEG-OUT-224E1455E820
nodeid: tests/specification/test_run_bundle_extractor.py::test_a_path_that_is_not_a_directory_is_refused
result: passed
reports: SEG-TS-117
Test Outcome: test_a_run_is_read_from_its_bundle_and_from_no_other_record SEG-OUT-6AAAA6E7E3EF
nodeid: tests/specification/test_run_bundle_extractor.py::test_a_run_is_read_from_its_bundle_and_from_no_other_record
result: passed
reports: SEG-TS-069
Test Outcome: test_a_run_whose_implementation_checkout_was_dirty_is_refused SEG-OUT-CB0415741E30
nodeid: tests/specification/test_run_bundle_extractor.py::test_a_run_whose_implementation_checkout_was_dirty_is_refused
result: passed
reports: SEG-TS-071
Test Outcome: test_a_run_with_no_recorded_name_is_refused SEG-OUT-7CBDBE8D8A51
nodeid: tests/specification/test_run_bundle_extractor.py::test_a_run_with_no_recorded_name_is_refused
result: passed
reports: SEG-TS-072
Test Outcome: test_a_run_with_no_recorded_revision_is_refused SEG-OUT-04310FEABE16
nodeid: tests/specification/test_run_bundle_extractor.py::test_a_run_with_no_recorded_revision_is_refused
result: passed
reports: SEG-TS-076
Test Outcome: test_an_anchor_names_the_bundle_by_its_digest SEG-OUT-6EF544CC9B54
nodeid: tests/specification/test_run_bundle_extractor.py::test_an_anchor_names_the_bundle_by_its_digest
result: passed
reports: SEG-TS-118
Test Outcome: test_an_export_with_a_build_timestamp_is_refused SEG-OUT-CED15744CAD3
nodeid: tests/specification/test_run_bundle_extractor.py::test_an_export_with_a_build_timestamp_is_refused
result: passed
reports: SEG-TS-074
Test Outcome: test_an_outcomes_revision_is_the_implementation_checkouts_revision_in_the_bundle SEG-OUT-6C733C3CB8B5
nodeid: tests/specification/test_run_bundle_extractor.py::test_an_outcomes_revision_is_the_implementation_checkouts_revision_in_the_bundle
result: passed
reports: SEG-TS-075

tests/specification/test_run_bundle_proof.py

Test Outcome: test_a_package_gains_one_field_and_changes_nothing_else SEG-OUT-A4BD7625547C
nodeid: tests/specification/test_run_bundle_proof.py::test_a_package_gains_one_field_and_changes_nothing_else
result: passed
reports: SEG-TS-097
Test Outcome: test_a_package_records_the_digest_of_every_bundle_that_supplied_an_outcome_in_scope SEG-OUT-588F2A1FF71F
nodeid: tests/specification/test_run_bundle_proof.py::test_a_package_records_the_digest_of_every_bundle_that_supplied_an_outcome_in_scope
result: passed
reports: SEG-TS-092
Test Outcome: test_a_stale_outcome_is_reported_as_information SEG-OUT-1852E52E6AB2
nodeid: tests/specification/test_run_bundle_proof.py::test_a_stale_outcome_is_reported_as_information
result: passed
reports: SEG-TS-095
Test Outcome: test_a_stale_run_changes_no_coverage_finding_of_the_gate SEG-OUT-81CFD8C970A5
nodeid: tests/specification/test_run_bundle_proof.py::test_a_stale_run_changes_no_coverage_finding_of_the_gate
result: passed
reports: SEG-TS-094
Test Outcome: test_leaf_verdicts_over_bundles_equal_the_golden_verdicts SEG-OUT-83C9218D8B41
nodeid: tests/specification/test_run_bundle_proof.py::test_leaf_verdicts_over_bundles_equal_the_golden_verdicts
result: passed
reports: SEG-TS-096
Test Outcome: test_the_design_root_does_not_move_with_the_evidence SEG-OUT-A86DE63A155D
nodeid: tests/specification/test_run_bundle_proof.py::test_the_design_root_does_not_move_with_the_evidence
result: passed
reports: SEG-TS-093

tests/specification/test_taxonomy.py

Test Outcome: test_each_node_kind_declares_its_content_hash_names SEG-OUT-808AE65B2D08
nodeid: tests/specification/test_taxonomy.py::test_each_node_kind_declares_its_content_hash_names
result: passed
reports: SEG-TS-003
Test Outcome: test_exactly_refines_verifies_and_implements_propagate SEG-OUT-7810D5C43176
nodeid: tests/specification/test_taxonomy.py::test_exactly_refines_verifies_and_implements_propagate
result: passed
reports: SEG-TS-002
Test Outcome: test_the_taxonomy_declares_exactly_the_built_in_kind_set SEG-OUT-47112B4B64CD
nodeid: tests/specification/test_taxonomy.py::test_the_taxonomy_declares_exactly_the_built_in_kind_set
result: passed
reports: SEG-TS-001

tests/unit/test_affirmation.py

Test Outcome: test_a_node_that_is_not_the_edges_endpoint_is_refused SEG-OUT-92936F4EB128
nodeid: tests/unit/test_affirmation.py::test_a_node_that_is_not_the_edges_endpoint_is_refused
result: passed
Test Outcome: test_a_vanished_edge_is_refused_by_the_state_it_was_recorded_in SEG-OUT-B2F5D6C6DB49
nodeid: tests/unit/test_affirmation.py::test_a_vanished_edge_is_refused_by_the_state_it_was_recorded_in
result: passed
Test Outcome: test_affirmable_leaves_every_strong_kind_governed_by_state_alone[Implements] SEG-OUT-49E0F0311E70
nodeid: tests/unit/test_affirmation.py::test_affirmable_leaves_every_strong_kind_governed_by_state_alone[Implements]
result: passed
Test Outcome: test_affirmable_leaves_every_strong_kind_governed_by_state_alone[Refines] SEG-OUT-35D49A024177
nodeid: tests/unit/test_affirmation.py::test_affirmable_leaves_every_strong_kind_governed_by_state_alone[Refines]
result: passed
Test Outcome: test_affirmable_leaves_every_strong_kind_governed_by_state_alone[Verifies] SEG-OUT-11769CE0F6E3
nodeid: tests/unit/test_affirmation.py::test_affirmable_leaves_every_strong_kind_governed_by_state_alone[Verifies]
result: passed
Test Outcome: test_affirmable_names_exactly_the_three_states[active-False] SEG-OUT-5CAFD3778F33
nodeid: tests/unit/test_affirmation.py::test_affirmable_names_exactly_the_three_states[active-False]
result: passed
Test Outcome: test_affirmable_names_exactly_the_three_states[broken-False] SEG-OUT-58E82AF4BEAD
nodeid: tests/unit/test_affirmation.py::test_affirmable_names_exactly_the_three_states[broken-False]
result: passed
Test Outcome: test_affirmable_names_exactly_the_three_states[directlyOutdated-True] SEG-OUT-2A41B7A4048A
nodeid: tests/unit/test_affirmation.py::test_affirmable_names_exactly_the_three_states[directlyOutdated-True]
result: passed
Test Outcome: test_affirmable_names_exactly_the_three_states[doublyOutdated-True] SEG-OUT-A59684A883A9
nodeid: tests/unit/test_affirmation.py::test_affirmable_names_exactly_the_three_states[doublyOutdated-True]
result: passed
Test Outcome: test_affirmable_names_exactly_the_three_states[pending-True] SEG-OUT-6F7C5D8CBFCE
nodeid: tests/unit/test_affirmation.py::test_affirmable_names_exactly_the_three_states[pending-True]
result: passed
Test Outcome: test_affirmable_names_exactly_the_three_states[transitivelySuspect-False] SEG-OUT-EE943A943D13
nodeid: tests/unit/test_affirmation.py::test_affirmable_names_exactly_the_three_states[transitivelySuspect-False]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[active-Calls] SEG-OUT-44C715777A17
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[active-Calls]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[active-Confirms] SEG-OUT-EF5E7CB60768
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[active-Confirms]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[active-Excuses] SEG-OUT-5A7A615CA8CA
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[active-Excuses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[active-Witnesses] SEG-OUT-B685C7B87C59
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[active-Witnesses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[broken-Calls] SEG-OUT-BF38A650DADD
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[broken-Calls]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[broken-Confirms] SEG-OUT-181333C0886B
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[broken-Confirms]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[broken-Excuses] SEG-OUT-573EB5BD6CAE
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[broken-Excuses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[broken-Witnesses] SEG-OUT-8A7BAA914A55
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[broken-Witnesses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[directlyOutdated-Calls] SEG-OUT-695A68435B1F
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[directlyOutdated-Calls]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[directlyOutdated-Confirms] SEG-OUT-F8D60534BC85
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[directlyOutdated-Confirms]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[directlyOutdated-Excuses] SEG-OUT-C9063083430B
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[directlyOutdated-Excuses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[directlyOutdated-Witnesses] SEG-OUT-5031E5BC926F
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[directlyOutdated-Witnesses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[doublyOutdated-Calls] SEG-OUT-3ED1D349C250
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[doublyOutdated-Calls]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[doublyOutdated-Confirms] SEG-OUT-2DB481523D85
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[doublyOutdated-Confirms]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[doublyOutdated-Excuses] SEG-OUT-188A1D3E6809
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[doublyOutdated-Excuses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[doublyOutdated-Witnesses] SEG-OUT-BC128D7E0F55
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[doublyOutdated-Witnesses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[pending-Calls] SEG-OUT-8CAA74098E9B
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[pending-Calls]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[pending-Confirms] SEG-OUT-C976FA4B3C3A
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[pending-Confirms]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[pending-Excuses] SEG-OUT-148BBDA05CC7
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[pending-Excuses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[pending-Witnesses] SEG-OUT-D083230DA213
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[pending-Witnesses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[transitivelySuspect-Calls] SEG-OUT-4DF0675E0D3D
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[transitivelySuspect-Calls]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[transitivelySuspect-Confirms] SEG-OUT-DB24BD4C7767
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[transitivelySuspect-Confirms]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[transitivelySuspect-Excuses] SEG-OUT-7139C614660A
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[transitivelySuspect-Excuses]
result: passed
Test Outcome: test_affirmable_refuses_every_evidence_kind_whatever_its_state[transitivelySuspect-Witnesses] SEG-OUT-A8E97F962D54
nodeid: tests/unit/test_affirmation.py::test_affirmable_refuses_every_evidence_kind_whatever_its_state[transitivelySuspect-Witnesses]
result: passed
Test Outcome: test_an_empty_role_or_revision_is_refused_by_the_vocabulary SEG-OUT-8E68932E39EB
nodeid: tests/unit/test_affirmation.py::test_an_empty_role_or_revision_is_refused_by_the_vocabulary
result: passed
Test Outcome: test_compose_accepts_every_affirmable_state[directlyOutdated] SEG-OUT-6327A6C0CC8A
nodeid: tests/unit/test_affirmation.py::test_compose_accepts_every_affirmable_state[directlyOutdated]
result: passed
Test Outcome: test_compose_accepts_every_affirmable_state[doublyOutdated] SEG-OUT-84232799EEB0
nodeid: tests/unit/test_affirmation.py::test_compose_accepts_every_affirmable_state[doublyOutdated]
result: passed
Test Outcome: test_compose_accepts_every_affirmable_state[pending] SEG-OUT-B545F3B94122
nodeid: tests/unit/test_affirmation.py::test_compose_accepts_every_affirmable_state[pending]
result: passed
Test Outcome: test_compose_refuses_every_evidence_kind_with_a_re_execution_message[Calls] SEG-OUT-B10F81D72F38
nodeid: tests/unit/test_affirmation.py::test_compose_refuses_every_evidence_kind_with_a_re_execution_message[Calls]
result: passed
Test Outcome: test_compose_refuses_every_evidence_kind_with_a_re_execution_message[Confirms] SEG-OUT-BC68155FEAB2
nodeid: tests/unit/test_affirmation.py::test_compose_refuses_every_evidence_kind_with_a_re_execution_message[Confirms]
result: passed
Test Outcome: test_compose_refuses_every_evidence_kind_with_a_re_execution_message[Excuses] SEG-OUT-F334A89D50D3
nodeid: tests/unit/test_affirmation.py::test_compose_refuses_every_evidence_kind_with_a_re_execution_message[Excuses]
result: passed
Test Outcome: test_compose_refuses_every_evidence_kind_with_a_re_execution_message[Witnesses] SEG-OUT-9CB259BF1B9A
nodeid: tests/unit/test_affirmation.py::test_compose_refuses_every_evidence_kind_with_a_re_execution_message[Witnesses]
result: passed
Test Outcome: test_compose_refuses_every_non_affirmable_state[active-nothing to affirm] SEG-OUT-A777AE721750
nodeid: tests/unit/test_affirmation.py::test_compose_refuses_every_non_affirmable_state[active-nothing to affirm]
result: passed
Test Outcome: test_compose_refuses_every_non_affirmable_state[broken-endpoint] SEG-OUT-3CC6244D4F8A
nodeid: tests/unit/test_affirmation.py::test_compose_refuses_every_non_affirmable_state[broken-endpoint]
result: passed
Test Outcome: test_compose_refuses_every_non_affirmable_state[transitivelySuspect-recomputation] SEG-OUT-6AF68B67E8F6
nodeid: tests/unit/test_affirmation.py::test_compose_refuses_every_non_affirmable_state[transitivelySuspect-recomputation]
result: passed
Test Outcome: test_composing_twice_composes_the_same_affirmation SEG-OUT-F0C62762208C
nodeid: tests/unit/test_affirmation.py::test_composing_twice_composes_the_same_affirmation
result: passed
Test Outcome: test_every_judgement_field_is_required_by_keyword_with_no_default SEG-OUT-F8F3D7B0F782
nodeid: tests/unit/test_affirmation.py::test_every_judgement_field_is_required_by_keyword_with_no_default
result: passed
Test Outcome: test_the_affirmed_edge_is_active_and_carries_the_recomputed_hash SEG-OUT-E92472ED6ABE
nodeid: tests/unit/test_affirmation.py::test_the_affirmed_edge_is_active_and_carries_the_recomputed_hash
result: passed
Test Outcome: test_the_event_carries_each_endpoints_named_content_hashes_verbatim SEG-OUT-5368141DDB95
nodeid: tests/unit/test_affirmation.py::test_the_event_carries_each_endpoints_named_content_hashes_verbatim
result: passed
Test Outcome: test_the_event_carries_each_endpoints_source_revision SEG-OUT-FE66C7ECED86
nodeid: tests/unit/test_affirmation.py::test_the_event_carries_each_endpoints_source_revision
result: passed
Test Outcome: test_the_event_carries_no_node_hashes SEG-OUT-FF732CADA364
nodeid: tests/unit/test_affirmation.py::test_the_event_carries_no_node_hashes
result: passed
Test Outcome: test_the_event_carries_the_role_the_judgement_was_made_in SEG-OUT-6651C82E351B
nodeid: tests/unit/test_affirmation.py::test_the_event_carries_the_role_the_judgement_was_made_in
result: passed
Test Outcome: test_the_event_names_the_edge_it_affirms SEG-OUT-A010C4BE9237
nodeid: tests/unit/test_affirmation.py::test_the_event_names_the_edge_it_affirms
result: passed
Test Outcome: test_the_operators_path_re_activates_the_change_site_and_clears_above SEG-OUT-710797E7136B
nodeid: tests/unit/test_affirmation.py::test_the_operators_path_re_activates_the_change_site_and_clears_above
result: passed
Test Outcome: test_the_reason_is_recorded_verbatim[empty] SEG-OUT-DD59B2F5F3E6
nodeid: tests/unit/test_affirmation.py::test_the_reason_is_recorded_verbatim[empty]
result: passed
Test Outcome: test_the_reason_is_recorded_verbatim[multiline] SEG-OUT-D2E328F85203
nodeid: tests/unit/test_affirmation.py::test_the_reason_is_recorded_verbatim[multiline]
result: passed
Test Outcome: test_the_reason_is_recorded_verbatim[unicode] SEG-OUT-01B4082E39CA
nodeid: tests/unit/test_affirmation.py::test_the_reason_is_recorded_verbatim[unicode]
result: passed
Test Outcome: test_the_reason_is_recorded_verbatim[whitespace] SEG-OUT-BE3F97FF5DD9
nodeid: tests/unit/test_affirmation.py::test_the_reason_is_recorded_verbatim[whitespace]
result: passed
Test Outcome: test_the_recorder_reaches_no_store_and_no_filesystem SEG-OUT-028FD0181935
nodeid: tests/unit/test_affirmation.py::test_the_recorder_reaches_no_store_and_no_filesystem
result: passed

tests/unit/test_affirmation_store.py

Test Outcome: test_a_demotion_named_per_edge_is_allowed SEG-OUT-9B8EC780791F
nodeid: tests/unit/test_affirmation_store.py::test_a_demotion_named_per_edge_is_allowed
result: passed
Test Outcome: test_a_demotion_refusal_names_every_edge_it_refuses SEG-OUT-942D32F4AA05
nodeid: tests/unit/test_affirmation_store.py::test_a_demotion_refusal_names_every_edge_it_refuses
result: passed
Test Outcome: test_a_demotion_request_that_demotes_nothing_is_refused SEG-OUT-642C2C430E46
nodeid: tests/unit/test_affirmation_store.py::test_a_demotion_request_that_demotes_nothing_is_refused
result: passed
Test Outcome: test_a_document_is_renamed_into_place_from_its_own_directory SEG-OUT-E0E37CF6741D
nodeid: tests/unit/test_affirmation_store.py::test_a_document_is_renamed_into_place_from_its_own_directory
result: passed
Test Outcome: test_a_document_never_contains_the_content_a_hash_covers SEG-OUT-82F28EA08E52
nodeid: tests/unit/test_affirmation_store.py::test_a_document_never_contains_the_content_a_hash_covers
result: passed
Test Outcome: test_a_document_survives_the_removal_of_its_last_record SEG-OUT-C6DFC385F3E5
nodeid: tests/unit/test_affirmation_store.py::test_a_document_survives_the_removal_of_its_last_record
result: passed
Test Outcome: test_a_field_declared_to_hold_an_identifier_only_ever_holds_one SEG-OUT-2E79BF85543A
nodeid: tests/unit/test_affirmation_store.py::test_a_field_declared_to_hold_an_identifier_only_ever_holds_one
result: passed
Test Outcome: test_a_first_write_of_a_pending_edge_needs_no_demotion SEG-OUT-B06EDB9C484B
nodeid: tests/unit/test_affirmation_store.py::test_a_first_write_of_a_pending_edge_needs_no_demotion
result: passed
Test Outcome: test_a_fresh_write_root_becomes_self_describing SEG-OUT-0175D6765CE3
nodeid: tests/unit/test_affirmation_store.py::test_a_fresh_write_root_becomes_self_describing
result: passed
Test Outcome: test_a_fresh_write_root_gains_the_layout_it_needs SEG-OUT-3A64582F8B5E
nodeid: tests/unit/test_affirmation_store.py::test_a_fresh_write_root_gains_the_layout_it_needs
result: passed
Test Outcome: test_a_hand_edited_proof_document_missing_its_context_is_refused SEG-OUT-D0B5F5B3FCEC
nodeid: tests/unit/test_affirmation_store.py::test_a_hand_edited_proof_document_missing_its_context_is_refused
result: passed
Test Outcome: test_a_locator_outside_the_kinds_pinned_formats_is_refused SEG-OUT-F26887649642
nodeid: tests/unit/test_affirmation_store.py::test_a_locator_outside_the_kinds_pinned_formats_is_refused
result: passed
Test Outcome: test_a_malformed_existing_document_is_refused_rather_than_overwritten SEG-OUT-91DC8AAAD63D
nodeid: tests/unit/test_affirmation_store.py::test_a_malformed_existing_document_is_refused_rather_than_overwritten
result: passed
Test Outcome: test_a_node_document_carries_identifiers_kinds_digests_and_their_locations SEG-OUT-8A7D9271761F
nodeid: tests/unit/test_affirmation_store.py::test_a_node_document_carries_identifiers_kinds_digests_and_their_locations
result: passed
Test Outcome: test_a_node_document_locates_the_content_behind_each_digest SEG-OUT-F6559FED92F1
nodeid: tests/unit/test_affirmation_store.py::test_a_node_document_locates_the_content_behind_each_digest
result: passed
Test Outcome: test_a_node_identifier_is_minted_from_the_local_identifier_alone SEG-OUT-19E1099EDCF0
nodeid: tests/unit/test_affirmation_store.py::test_a_node_identifier_is_minted_from_the_local_identifier_alone
result: passed
Test Outcome: test_a_node_is_written_to_the_document_of_its_kind SEG-OUT-83F19097610F
nodeid: tests/unit/test_affirmation_store.py::test_a_node_is_written_to_the_document_of_its_kind
result: passed
Test Outcome: test_a_node_of_an_undeclared_kind_is_refused SEG-OUT-34DBDFBAF29D
nodeid: tests/unit/test_affirmation_store.py::test_a_node_of_an_undeclared_kind_is_refused
result: passed
Test Outcome: test_a_node_whose_hash_names_do_not_match_its_kind_is_refused SEG-OUT-86E546D922A5
nodeid: tests/unit/test_affirmation_store.py::test_a_node_whose_hash_names_do_not_match_its_kind_is_refused
result: passed
Test Outcome: test_a_pending_edge_carries_no_edge_hash SEG-OUT-9219BFECF04F
nodeid: tests/unit/test_affirmation_store.py::test_a_pending_edge_carries_no_edge_hash
result: passed
Test Outcome: test_a_proof_document_is_written_atomically SEG-OUT-1C114DDDA9ED
nodeid: tests/unit/test_affirmation_store.py::test_a_proof_document_is_written_atomically
result: passed
Test Outcome: test_a_proof_document_kind_with_no_registered_schema_is_refused SEG-OUT-96DE8EEF880F
nodeid: tests/unit/test_affirmation_store.py::test_a_proof_document_kind_with_no_registered_schema_is_refused
result: passed
Test Outcome: test_a_proof_document_lands_under_its_snapshot_directory SEG-OUT-1BD599DCFBDE
nodeid: tests/unit/test_affirmation_store.py::test_a_proof_document_lands_under_its_snapshot_directory
result: passed
Test Outcome: test_a_proof_document_that_does_not_validate_is_refused SEG-OUT-17801BB1B65B
nodeid: tests/unit/test_affirmation_store.py::test_a_proof_document_that_does_not_validate_is_refused
result: passed
Test Outcome: test_a_record_carrying_a_field_outside_its_schema_is_refused SEG-OUT-1ACDAA98C31A
nodeid: tests/unit/test_affirmation_store.py::test_a_record_carrying_a_field_outside_its_schema_is_refused
result: passed
Test Outcome: test_a_refusal_names_the_record_and_what_was_wrong_with_it SEG-OUT-8647217E615B
nodeid: tests/unit/test_affirmation_store.py::test_a_refusal_names_the_record_and_what_was_wrong_with_it
result: passed
Test Outcome: test_a_refused_demotion_writes_nothing SEG-OUT-7AA7CCEF5258
nodeid: tests/unit/test_affirmation_store.py::test_a_refused_demotion_writes_nothing
result: passed
Test Outcome: test_a_removal_drops_only_the_records_it_names SEG-OUT-DFB09E6F034B
nodeid: tests/unit/test_affirmation_store.py::test_a_removal_drops_only_the_records_it_names
result: passed
Test Outcome: test_a_review_event_given_node_hashes_still_persists_them SEG-OUT-B84C8D7EDF58
nodeid: tests/unit/test_affirmation_store.py::test_a_review_event_given_node_hashes_still_persists_them
result: passed
Test Outcome: test_a_review_event_records_each_endpoints_named_content_hashes SEG-OUT-1FDC1E378F4D
nodeid: tests/unit/test_affirmation_store.py::test_a_review_event_records_each_endpoints_named_content_hashes
result: passed
Test Outcome: test_a_review_event_records_the_role_it_was_made_in SEG-OUT-7D436292A167
nodeid: tests/unit/test_affirmation_store.py::test_a_review_event_records_the_role_it_was_made_in
result: passed
Test Outcome: test_a_review_event_records_the_source_revision_of_each_endpoint SEG-OUT-CC6ABD2CC225
nodeid: tests/unit/test_affirmation_store.py::test_a_review_event_records_the_source_revision_of_each_endpoint
result: passed
Test Outcome: test_a_review_event_with_an_empty_reason_is_persisted_as_given SEG-OUT-621FE1D817AC
nodeid: tests/unit/test_affirmation_store.py::test_a_review_event_with_an_empty_reason_is_persisted_as_given
result: passed
Test Outcome: test_a_review_event_without_node_hashes_is_persisted_without_the_keys SEG-OUT-68E1536530FA
nodeid: tests/unit/test_affirmation_store.py::test_a_review_event_without_node_hashes_is_persisted_without_the_keys
result: passed
Test Outcome: test_a_role_outside_the_documented_convention_is_still_writable SEG-OUT-EE044339B535
nodeid: tests/unit/test_affirmation_store.py::test_a_role_outside_the_documented_convention_is_still_writable
result: passed
Test Outcome: test_a_schema_the_case_already_carries_is_never_written_over SEG-OUT-B559119947EA
nodeid: tests/unit/test_affirmation_store.py::test_a_schema_the_case_already_carries_is_never_written_over
result: passed
Test Outcome: test_a_schema_the_case_carries_but_cannot_be_read_is_refused SEG-OUT-B6F2CDE6D9F2
nodeid: tests/unit/test_affirmation_store.py::test_a_schema_the_case_carries_but_cannot_be_read_is_refused
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused["] SEG-OUT-28EA8653653A
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused["]
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[*] SEG-OUT-720998F6BA73
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[*]
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[:] SEG-OUT-D3CB3DDEA38E
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[:]
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[<] SEG-OUT-51B616FD98D4
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[<]
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[>] SEG-OUT-74B3D6609B54
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[>]
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[?] SEG-OUT-25104F2BD3BF
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[?]
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[\\] SEG-OUT-9206BCD6F034
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[\\]
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[\x1f] SEG-OUT-FEE2BDC892B6
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[\x1f]
result: passed
Test Outcome: test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[|] SEG-OUT-1332FA713A67
nodeid: tests/unit/test_affirmation_store.py::test_a_segment_with_a_character_invalid_on_some_filesystem_is_refused[|]
result: passed
Test Outcome: test_a_snapshot_identifier_that_climbs_out_of_the_write_root_is_refused SEG-OUT-8DC9763F408C
nodeid: tests/unit/test_affirmation_store.py::test_a_snapshot_identifier_that_climbs_out_of_the_write_root_is_refused
result: passed
Test Outcome: test_a_snapshot_identifier_with_a_path_separator_is_refused SEG-OUT-32BA19A7BA5B
nodeid: tests/unit/test_affirmation_store.py::test_a_snapshot_identifier_with_a_path_separator_is_refused
result: passed
Test Outcome: test_a_split_hash_node_locates_each_hash_separately SEG-OUT-3BB8D44FB5DB
nodeid: tests/unit/test_affirmation_store.py::test_a_split_hash_node_locates_each_hash_separately
result: passed
Test Outcome: test_a_state_change_that_keeps_the_hash_is_not_a_demotion SEG-OUT-781D13C52AE1
nodeid: tests/unit/test_affirmation_store.py::test_a_state_change_that_keeps_the_hash_is_not_a_demotion
result: passed
Test Outcome: test_a_store_reads_and_writes_nothing_when_it_is_constructed SEG-OUT-0511B1A60EA0
nodeid: tests/unit/test_affirmation_store.py::test_a_store_reads_and_writes_nothing_when_it_is_constructed
result: passed
Test Outcome: test_a_target_resolving_outside_the_write_root_through_a_symlink_is_refused SEG-OUT-3D01E7651A05
nodeid: tests/unit/test_affirmation_store.py::test_a_target_resolving_outside_the_write_root_through_a_symlink_is_refused
result: passed
Test Outcome: test_a_test_outcome_document_carries_its_revision SEG-OUT-4F3FBDD7BF53
nodeid: tests/unit/test_affirmation_store.py::test_a_test_outcome_document_carries_its_revision
result: passed
Test Outcome: test_a_test_outcome_missing_its_revision_is_refused_on_read SEG-OUT-21868346F824
nodeid: tests/unit/test_affirmation_store.py::test_a_test_outcome_missing_its_revision_is_refused_on_read
result: passed
Test Outcome: test_a_waiver_document_carries_its_expiry_and_approver SEG-OUT-E9E55645D04E
nodeid: tests/unit/test_affirmation_store.py::test_a_waiver_document_carries_its_expiry_and_approver
result: passed
Test Outcome: test_a_waiver_missing_its_approver_is_refused_by_the_schema SEG-OUT-F4BE99740518
nodeid: tests/unit/test_affirmation_store.py::test_a_waiver_missing_its_approver_is_refused_by_the_schema
result: passed
Test Outcome: test_a_waiver_missing_its_expiry_is_refused_by_the_schema SEG-OUT-600E6A8C5D1D
nodeid: tests/unit/test_affirmation_store.py::test_a_waiver_missing_its_expiry_is_refused_by_the_schema
result: passed
Test Outcome: test_a_written_proof_document_reads_back_equal SEG-OUT-EA635C35A296
nodeid: tests/unit/test_affirmation_store.py::test_a_written_proof_document_reads_back_equal
result: passed
Test Outcome: test_an_absolute_snapshot_identifier_is_refused SEG-OUT-F538459946BE
nodeid: tests/unit/test_affirmation_store.py::test_an_absolute_snapshot_identifier_is_refused
result: passed
Test Outcome: test_an_active_edge_carries_the_hash_it_was_affirmed_against SEG-OUT-5B407400355A
nodeid: tests/unit/test_affirmation_store.py::test_an_active_edge_carries_the_hash_it_was_affirmed_against
result: passed
Test Outcome: test_an_active_edge_without_an_edge_hash_is_refused_by_the_schema SEG-OUT-381BF3A05846
nodeid: tests/unit/test_affirmation_store.py::test_an_active_edge_without_an_edge_hash_is_refused_by_the_schema
result: passed
Test Outcome: test_an_affirmed_edge_keeps_its_state_when_a_node_document_is_written SEG-OUT-FC0032A31A5B
nodeid: tests/unit/test_affirmation_store.py::test_an_affirmed_edge_keeps_its_state_when_a_node_document_is_written
result: passed
Test Outcome: test_an_affirmed_edge_keeps_its_state_when_another_edge_is_written SEG-OUT-FE8883A0FAEB
nodeid: tests/unit/test_affirmation_store.py::test_an_affirmed_edge_keeps_its_state_when_another_edge_is_written
result: passed
Test Outcome: test_an_edge_carrying_a_field_outside_its_schema_is_refused SEG-OUT-773331859716
nodeid: tests/unit/test_affirmation_store.py::test_an_edge_carrying_a_field_outside_its_schema_is_refused
result: passed
Test Outcome: test_an_edge_of_an_undeclared_kind_is_refused SEG-OUT-342767BA104A
nodeid: tests/unit/test_affirmation_store.py::test_an_edge_of_an_undeclared_kind_is_refused
result: passed
Test Outcome: test_an_edge_records_its_endpoints_as_identifiers_not_as_a_split_identifier SEG-OUT-67D2F8EA6D2F
nodeid: tests/unit/test_affirmation_store.py::test_an_edge_records_its_endpoints_as_identifiers_not_as_a_split_identifier
result: passed
Test Outcome: test_an_event_without_a_role_is_refused_by_the_schema SEG-OUT-84852467F2C9
nodeid: tests/unit/test_affirmation_store.py::test_an_event_without_a_role_is_refused_by_the_schema
result: passed
Test Outcome: test_an_identifier_is_a_valid_iri_for_a_dotted_implementation_path SEG-OUT-C5C7AE419B0C
nodeid: tests/unit/test_affirmation_store.py::test_an_identifier_is_a_valid_iri_for_a_dotted_implementation_path
result: passed
Test Outcome: test_an_instance_document_references_the_context_relative_to_its_own_location SEG-OUT-B3CEEFF00730
nodeid: tests/unit/test_affirmation_store.py::test_an_instance_document_references_the_context_relative_to_its_own_location
result: passed
Test Outcome: test_an_interrupted_write_creates_no_document_in_a_fresh_root SEG-OUT-9F6EF81CA18C
nodeid: tests/unit/test_affirmation_store.py::test_an_interrupted_write_creates_no_document_in_a_fresh_root
result: passed
Test Outcome: test_an_interrupted_write_leaves_no_temporary_file_behind SEG-OUT-D1EC4128AC04
nodeid: tests/unit/test_affirmation_store.py::test_an_interrupted_write_leaves_no_temporary_file_behind
result: passed
Test Outcome: test_an_interrupted_write_leaves_the_previous_document_in_place SEG-OUT-2D923C093BFF
nodeid: tests/unit/test_affirmation_store.py::test_an_interrupted_write_leaves_the_previous_document_in_place
result: passed
Test Outcome: test_appending_a_review_event_preserves_the_events_already_recorded SEG-OUT-79F27DAB9A67
nodeid: tests/unit/test_affirmation_store.py::test_appending_a_review_event_preserves_the_events_already_recorded
result: passed
Test Outcome: test_each_appended_review_event_gets_the_next_identifier SEG-OUT-E0C3D816DFF4
nodeid: tests/unit/test_affirmation_store.py::test_each_appended_review_event_gets_the_next_identifier
result: passed
Test Outcome: test_entries_are_written_in_identifier_order SEG-OUT-EA04F8D2C376
nodeid: tests/unit/test_affirmation_store.py::test_entries_are_written_in_identifier_order
result: passed
Test Outcome: test_every_declared_kind_has_a_collection_document SEG-OUT-624A0771234C
nodeid: tests/unit/test_affirmation_store.py::test_every_declared_kind_has_a_collection_document
result: passed
Test Outcome: test_every_file_a_write_creates_lies_under_the_write_root SEG-OUT-C9961D7315F6
nodeid: tests/unit/test_affirmation_store.py::test_every_file_a_write_creates_lies_under_the_write_root
result: passed
Test Outcome: test_every_packaged_schema_declares_draft_2020_12 SEG-OUT-F1462DC881A4
nodeid: tests/unit/test_affirmation_store.py::test_every_packaged_schema_declares_draft_2020_12
result: passed
Test Outcome: test_every_packaged_schema_forbids_properties_it_does_not_declare SEG-OUT-1490F6E2ACDA
nodeid: tests/unit/test_affirmation_store.py::test_every_packaged_schema_forbids_properties_it_does_not_declare
result: passed
Test Outcome: test_identifiers_in_a_document_are_absolute_iris SEG-OUT-602C02FF2221
nodeid: tests/unit/test_affirmation_store.py::test_identifiers_in_a_document_are_absolute_iris
result: passed
Test Outcome: test_nothing_is_written_when_one_record_in_the_batch_is_refused SEG-OUT-955877721D76
nodeid: tests/unit/test_affirmation_store.py::test_nothing_is_written_when_one_record_in_the_batch_is_refused
result: passed
Test Outcome: test_only_the_named_edge_may_be_demoted SEG-OUT-4302050AD423
nodeid: tests/unit/test_affirmation_store.py::test_only_the_named_edge_may_be_demoted
result: passed
Test Outcome: test_re_emitting_the_self_describing_files_leaves_them_untouched SEG-OUT-7947E12C1A1E
nodeid: tests/unit/test_affirmation_store.py::test_re_emitting_the_self_describing_files_leaves_them_untouched
result: passed
Test Outcome: test_reading_a_package_missing_one_document_refuses_the_whole_package SEG-OUT-1CDA5E593D8F
nodeid: tests/unit/test_affirmation_store.py::test_reading_a_package_missing_one_document_refuses_the_whole_package
result: passed
Test Outcome: test_reading_a_package_returns_every_document_keyed_by_name SEG-OUT-092A4EFFE592
nodeid: tests/unit/test_affirmation_store.py::test_reading_a_package_returns_every_document_keyed_by_name
result: passed
Test Outcome: test_reading_a_proof_document_kind_with_no_registered_schema_is_refused SEG-OUT-119730E2B423
nodeid: tests/unit/test_affirmation_store.py::test_reading_a_proof_document_kind_with_no_registered_schema_is_refused
result: passed
Test Outcome: test_reading_a_proof_document_that_does_not_exist_is_refused SEG-OUT-FF7A4F71625F
nodeid: tests/unit/test_affirmation_store.py::test_reading_a_proof_document_that_does_not_exist_is_refused
result: passed
Test Outcome: test_refresh_schemas_counts_a_reformatted_but_equivalent_copy_as_differing SEG-OUT-26CB5BAA5608
nodeid: tests/unit/test_affirmation_store.py::test_refresh_schemas_counts_a_reformatted_but_equivalent_copy_as_differing
result: passed
Test Outcome: test_refresh_schemas_of_a_current_case_reports_nothing_and_leaves_it_untouched SEG-OUT-D9886929CF57
nodeid: tests/unit/test_affirmation_store.py::test_refresh_schemas_of_a_current_case_reports_nothing_and_leaves_it_untouched
result: passed
Test Outcome: test_refresh_schemas_refuses_a_root_that_is_not_a_directory_and_creates_nothing SEG-OUT-BADBEDBCD204
nodeid: tests/unit/test_affirmation_store.py::test_refresh_schemas_refuses_a_root_that_is_not_a_directory_and_creates_nothing
result: passed
Test Outcome: test_refresh_schemas_reports_and_restores_a_missing_copy SEG-OUT-50A33C453091
nodeid: tests/unit/test_affirmation_store.py::test_refresh_schemas_reports_and_restores_a_missing_copy
result: passed
Test Outcome: test_refresh_schemas_reports_and_rewrites_a_stale_copy SEG-OUT-7E0E77A03610
nodeid: tests/unit/test_affirmation_store.py::test_refresh_schemas_reports_and_rewrites_a_stale_copy
result: passed
Test Outcome: test_refresh_schemas_writes_nothing_beyond_the_schema_copy SEG-OUT-D4FB84BA10D3
nodeid: tests/unit/test_affirmation_store.py::test_refresh_schemas_writes_nothing_beyond_the_schema_copy
result: passed
Test Outcome: test_removing_a_record_that_is_not_persisted_is_refused SEG-OUT-2DCB158B8703
nodeid: tests/unit/test_affirmation_store.py::test_removing_a_record_that_is_not_persisted_is_refused
result: passed
Test Outcome: test_replacing_an_affirmed_edge_with_an_unaffirmed_record_is_refused SEG-OUT-6A3FF6F0A249
nodeid: tests/unit/test_affirmation_store.py::test_replacing_an_affirmed_edge_with_an_unaffirmed_record_is_refused
result: passed
Test Outcome: test_replacing_an_affirmed_hash_with_a_different_hash_is_not_a_demotion SEG-OUT-459F0E949AAD
nodeid: tests/unit/test_affirmation_store.py::test_replacing_an_affirmed_hash_with_a_different_hash_is_not_a_demotion
result: passed
Test Outcome: test_the_demotion_error_is_an_affirmation_store_error SEG-OUT-C18879244A33
nodeid: tests/unit/test_affirmation_store.py::test_the_demotion_error_is_an_affirmation_store_error
result: passed
Test Outcome: test_the_emitted_schemas_are_the_packaged_schemas_byte_for_byte SEG-OUT-1F215C2ED984
nodeid: tests/unit/test_affirmation_store.py::test_the_emitted_schemas_are_the_packaged_schemas_byte_for_byte
result: passed
Test Outcome: test_the_packaged_review_event_schema_no_longer_requires_the_node_hashes SEG-OUT-68CA2B1FFF5E
nodeid: tests/unit/test_affirmation_store.py::test_the_packaged_review_event_schema_no_longer_requires_the_node_hashes
result: passed
Test Outcome: test_the_packaged_review_event_schema_still_declares_the_node_hash_properties SEG-OUT-963C3AE7D996
nodeid: tests/unit/test_affirmation_store.py::test_the_packaged_review_event_schema_still_declares_the_node_hash_properties
result: passed
Test Outcome: test_the_store_refuses_a_test_outcome_and_an_evidence_edge_by_name SEG-OUT-0C48FBCF7591
nodeid: tests/unit/test_affirmation_store.py::test_the_store_refuses_a_test_outcome_and_an_evidence_edge_by_name
result: passed
Test Outcome: test_the_write_root_is_a_parameter_and_never_a_default SEG-OUT-27139364FFB0
nodeid: tests/unit/test_affirmation_store.py::test_the_write_root_is_a_parameter_and_never_a_default
result: passed
Test Outcome: test_two_edges_never_mint_one_identifier SEG-OUT-43A8F554A2C0
nodeid: tests/unit/test_affirmation_store.py::test_two_edges_never_mint_one_identifier
result: passed
Test Outcome: test_two_identical_writes_produce_byte_identical_documents SEG-OUT-67F87111AB16
nodeid: tests/unit/test_affirmation_store.py::test_two_identical_writes_produce_byte_identical_documents
result: passed
Test Outcome: test_two_stores_over_one_root_see_the_same_case SEG-OUT-16E4EDE9746E
nodeid: tests/unit/test_affirmation_store.py::test_two_stores_over_one_root_see_the_same_case
result: passed
Test Outcome: test_write_records_writes_nodes_and_edges_together SEG-OUT-317E0AB38DEE
nodeid: tests/unit/test_affirmation_store.py::test_write_records_writes_nodes_and_edges_together
result: passed
Test Outcome: test_write_records_writes_nothing_when_a_node_fails_its_schema SEG-OUT-926F16A16E15
nodeid: tests/unit/test_affirmation_store.py::test_write_records_writes_nothing_when_a_node_fails_its_schema
result: passed
Test Outcome: test_write_records_writes_nothing_when_an_edge_is_refused SEG-OUT-64FB5840E469
nodeid: tests/unit/test_affirmation_store.py::test_write_records_writes_nothing_when_an_edge_is_refused
result: passed
Test Outcome: test_writing_one_kind_leaves_the_other_documents_untouched SEG-OUT-9F9A7D264ED7
nodeid: tests/unit/test_affirmation_store.py::test_writing_one_kind_leaves_the_other_documents_untouched
result: passed
Test Outcome: test_writing_one_node_leaves_the_others_in_the_document SEG-OUT-D294444C89CE
nodeid: tests/unit/test_affirmation_store.py::test_writing_one_node_leaves_the_others_in_the_document
result: passed

tests/unit/test_affirmation_store_read_face.py

Test Outcome: test_a_case_schema_that_cannot_be_read_refuses_the_read SEG-OUT-D23D7984ABF3
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_case_schema_that_cannot_be_read_refuses_the_read
result: passed
Test Outcome: test_a_directory_that_is_not_self_describing_is_refused SEG-OUT-EE0AB6491D43
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_directory_that_is_not_self_describing_is_refused
result: passed
Test Outcome: test_a_document_without_a_graph_of_entries_is_refused SEG-OUT-76AED2616090
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_document_without_a_graph_of_entries_is_refused
result: passed
Test Outcome: test_a_hash_without_its_source_location_is_refused_on_read_back SEG-OUT-75F218580FC2
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_hash_without_its_source_location_is_refused_on_read_back
result: passed
Test Outcome: test_a_locator_of_a_scheme_the_kind_does_not_pin_is_refused_on_read_back SEG-OUT-336B8ADFFFC8
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_locator_of_a_scheme_the_kind_does_not_pin_is_refused_on_read_back
result: passed
Test Outcome: test_a_malformed_document_is_refused SEG-OUT-CC9DD4B11910
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_malformed_document_is_refused
result: passed
Test Outcome: test_a_malformed_node_hash_in_a_recorded_event_is_still_refused SEG-OUT-C8947559023A
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_malformed_node_hash_in_a_recorded_event_is_still_refused
result: passed
Test Outcome: test_a_multi_hash_node_reads_back_with_every_named_digest SEG-OUT-A736B1772C8E
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_multi_hash_node_reads_back_with_every_named_digest
result: passed
Test Outcome: test_a_node_reads_back_with_the_location_of_every_hash SEG-OUT-36E4297CDAEB
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_node_reads_back_with_the_location_of_every_hash
result: passed
Test Outcome: test_a_node_whose_identifier_disagrees_with_its_local_identifier_is_refused SEG-OUT-FDF3C0F73A07
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_node_whose_identifier_disagrees_with_its_local_identifier_is_refused
result: passed
Test Outcome: test_a_pending_edge_carrying_a_hash_is_refused_on_read_back SEG-OUT-7753497BCF1B
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_pending_edge_carrying_a_hash_is_refused_on_read_back
result: passed
Test Outcome: test_a_pending_edge_reads_back_with_no_edge_hash SEG-OUT-47DE16A1279D
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_pending_edge_reads_back_with_no_edge_hash
result: passed
Test Outcome: test_a_read_refusal_names_the_document_and_the_entry SEG-OUT-CAACED52B0CB
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_read_refusal_names_the_document_and_the_entry
result: passed
Test Outcome: test_a_record_written_between_two_reads_appears_in_the_second SEG-OUT-A56CB70E4AD5
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_record_written_between_two_reads_appears_in_the_second
result: passed
Test Outcome: test_a_result_outside_the_vocabulary_is_refused_on_read SEG-OUT-9D5A42E06104
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_result_outside_the_vocabulary_is_refused_on_read
result: passed
Test Outcome: test_a_review_event_reads_back_with_its_role SEG-OUT-78B42B6CCD6E
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_review_event_reads_back_with_its_role
result: passed
Test Outcome: test_a_review_event_without_node_hashes_reads_back_with_none SEG-OUT-3EC1B49851B1
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_review_event_without_node_hashes_reads_back_with_none
result: passed
Test Outcome: test_a_review_events_content_anchors_read_back_unchanged SEG-OUT-CDD29659C405
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_review_events_content_anchors_read_back_unchanged
result: passed
Test Outcome: test_a_source_location_missing_a_member_is_refused_on_read_back SEG-OUT-66C1DCC30637
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_source_location_missing_a_member_is_refused_on_read_back
result: passed
Test Outcome: test_a_source_location_with_an_undeclared_member_is_refused_on_read_back SEG-OUT-9D1C87D6CCAE
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_source_location_with_an_undeclared_member_is_refused_on_read_back
result: passed
Test Outcome: test_a_waiver_missing_its_expiry_is_refused_on_read SEG-OUT-2736EA20D826
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_waiver_missing_its_expiry_is_refused_on_read
result: passed
Test Outcome: test_a_waiver_reads_back_with_its_expiry_and_approver SEG-OUT-EFD6A6964772
nodeid: tests/unit/test_affirmation_store_read_face.py::test_a_waiver_reads_back_with_its_expiry_and_approver
result: passed
Test Outcome: test_an_absent_root_is_refused_rather_than_read_as_empty SEG-OUT-54C6F34F6CAC
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_absent_root_is_refused_rather_than_read_as_empty
result: passed
Test Outcome: test_an_affirmed_edge_reads_back_with_the_hash_it_was_affirmed_against SEG-OUT-E10A035A1EF2
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_affirmed_edge_reads_back_with_the_hash_it_was_affirmed_against
result: passed
Test Outcome: test_an_edge_endpoint_outside_the_node_identifier_space_is_refused SEG-OUT-FE53520359E5
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_edge_endpoint_outside_the_node_identifier_space_is_refused
result: passed
Test Outcome: test_an_empty_role_is_refused_on_read_back SEG-OUT-81C63FCE9792
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_empty_role_is_refused_on_read_back
result: passed
Test Outcome: test_an_entry_carrying_an_undeclared_field_is_refused_on_read_back SEG-OUT-A564D6002C8D
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_entry_carrying_an_undeclared_field_is_refused_on_read_back
result: passed
Test Outcome: test_an_event_missing_an_endpoints_content_anchors_is_refused_by_the_schema SEG-OUT-EB2A7660DFAA
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_event_missing_an_endpoints_content_anchors_is_refused_by_the_schema
result: passed
Test Outcome: test_an_event_recorded_with_node_hashes_still_reads_back SEG-OUT-C78BD9E9B9C5
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_event_recorded_with_node_hashes_still_reads_back
result: passed
Test Outcome: test_an_identifier_outside_the_node_space_is_refused_by_the_inverse SEG-OUT-96DDD2C9E36F
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_identifier_outside_the_node_space_is_refused_by_the_inverse
result: passed
Test Outcome: test_an_initialized_empty_case_reads_as_empty_streams SEG-OUT-36A9B593625D
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_initialized_empty_case_reads_as_empty_streams
result: passed
Test Outcome: test_an_outcome_reads_back_with_its_result SEG-OUT-80CB0466BAF2
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_outcome_reads_back_with_its_result
result: passed
Test Outcome: test_an_outcome_stripped_of_its_result_is_refused_on_read SEG-OUT-50506676CDA9
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_outcome_stripped_of_its_result_is_refused_on_read
result: passed
Test Outcome: test_an_uppercase_digest_is_refused_not_folded SEG-OUT-EC721BF260F9
nodeid: tests/unit/test_affirmation_store_read_face.py::test_an_uppercase_digest_is_refused_not_folded
result: passed
Test Outcome: test_every_edge_kind_reads_back_as_it_was_written SEG-OUT-65B75AFC720E
nodeid: tests/unit/test_affirmation_store_read_face.py::test_every_edge_kind_reads_back_as_it_was_written
result: passed
Test Outcome: test_every_node_kind_reads_back_as_it_was_written SEG-OUT-285BF843097D
nodeid: tests/unit/test_affirmation_store_read_face.py::test_every_node_kind_reads_back_as_it_was_written
result: passed
Test Outcome: test_identifiers_read_back_case_local SEG-OUT-97D8A799AC87
nodeid: tests/unit/test_affirmation_store_read_face.py::test_identifiers_read_back_case_local
result: passed
Test Outcome: test_latest_review_event_is_none_for_an_edge_never_affirmed SEG-OUT-EE4D2341CBF3
nodeid: tests/unit/test_affirmation_store_read_face.py::test_latest_review_event_is_none_for_an_edge_never_affirmed
result: passed
Test Outcome: test_latest_review_event_is_the_last_one_appended_for_that_edge SEG-OUT-4C0C58D7B475
nodeid: tests/unit/test_affirmation_store_read_face.py::test_latest_review_event_is_the_last_one_appended_for_that_edge
result: passed
Test Outcome: test_reading_a_fresh_initialized_case_writes_nothing SEG-OUT-526E2F52D001
nodeid: tests/unit/test_affirmation_store_read_face.py::test_reading_a_fresh_initialized_case_writes_nothing
result: passed
Test Outcome: test_reading_then_writing_back_leaves_every_document_byte_identical SEG-OUT-6AE1DA8ECE15
nodeid: tests/unit/test_affirmation_store_read_face.py::test_reading_then_writing_back_leaves_every_document_byte_identical
result: passed
Test Outcome: test_reading_writes_nothing SEG-OUT-D2F7B23B0DEA
nodeid: tests/unit/test_affirmation_store_read_face.py::test_reading_writes_nothing
result: passed
Test Outcome: test_review_events_read_back_as_written_and_in_recorded_order SEG-OUT-910FD43A7A2A
nodeid: tests/unit/test_affirmation_store_read_face.py::test_review_events_read_back_as_written_and_in_recorded_order
result: passed
Test Outcome: test_the_node_identifier_inverse_returns_what_was_minted SEG-OUT-3CA544C3EDFE
nodeid: tests/unit/test_affirmation_store_read_face.py::test_the_node_identifier_inverse_returns_what_was_minted
result: passed
Test Outcome: test_the_store_satisfies_the_record_source_protocol SEG-OUT-13DF81A2A85F
nodeid: tests/unit/test_affirmation_store_read_face.py::test_the_store_satisfies_the_record_source_protocol
result: passed
Test Outcome: test_two_reads_yield_the_same_sequence SEG-OUT-7DDC4B50FCF2
nodeid: tests/unit/test_affirmation_store_read_face.py::test_two_reads_yield_the_same_sequence
result: passed

tests/unit/test_cli_case.py

Test Outcome: test_case_check_json_keeps_the_record_count_keys SEG-OUT-30152893261B
nodeid: tests/unit/test_cli_case.py::test_case_check_json_keeps_the_record_count_keys
result: passed
Test Outcome: test_case_check_renders_record_counts_as_words SEG-OUT-4A0CA0DA7AD4
nodeid: tests/unit/test_cli_case.py::test_case_check_renders_record_counts_as_words
result: passed
Test Outcome: test_case_check_reports_a_composed_producer_readable SEG-OUT-C964E2C01F9D
nodeid: tests/unit/test_cli_case.py::test_case_check_reports_a_composed_producer_readable
result: passed
Test Outcome: test_case_check_reports_a_composed_producer_with_a_missing_export_unreadable SEG-OUT-ACCBA535E4A5
nodeid: tests/unit/test_cli_case.py::test_case_check_reports_a_composed_producer_with_a_missing_export_unreadable
result: passed
Test Outcome: test_case_check_reports_an_unreadable_producer SEG-OUT-458F86EAEC77
nodeid: tests/unit/test_cli_case.py::test_case_check_reports_an_unreadable_producer
result: passed
Test Outcome: test_case_check_reports_layout_schemas_counts_config_and_producer SEG-OUT-78165C33AC88
nodeid: tests/unit/test_cli_case.py::test_case_check_reports_layout_schemas_counts_config_and_producer
result: passed
Test Outcome: test_case_check_run_from_another_directory_finds_the_case_a_config_file_names SEG-OUT-8174137664CB
nodeid: tests/unit/test_cli_case.py::test_case_check_run_from_another_directory_finds_the_case_a_config_file_names
result: passed
Test Outcome: test_case_init_creates_layout_and_schemas SEG-OUT-B2087D28EF70
nodeid: tests/unit/test_cli_case.py::test_case_init_creates_layout_and_schemas
result: passed
Test Outcome: test_case_init_on_an_existing_case_succeeds_unchanged SEG-OUT-5C54891B837D
nodeid: tests/unit/test_cli_case.py::test_case_init_on_an_existing_case_succeeds_unchanged
result: passed
Test Outcome: test_case_refresh_json_lists_the_refreshed_names SEG-OUT-FC5E8DF60F25
nodeid: tests/unit/test_cli_case.py::test_case_refresh_json_lists_the_refreshed_names
result: passed
Test Outcome: test_case_refresh_json_of_a_current_case_lists_none SEG-OUT-AAD954325015
nodeid: tests/unit/test_cli_case.py::test_case_refresh_json_of_a_current_case_lists_none
result: passed
Test Outcome: test_case_refresh_leaves_the_records_untouched SEG-OUT-41A39580F2A5
nodeid: tests/unit/test_cli_case.py::test_case_refresh_leaves_the_records_untouched
result: passed
Test Outcome: test_case_refresh_of_a_current_case_says_the_copy_is_up_to_date SEG-OUT-4C7731F22F65
nodeid: tests/unit/test_cli_case.py::test_case_refresh_of_a_current_case_says_the_copy_is_up_to_date
result: passed
Test Outcome: test_case_refresh_of_a_missing_case_root_cannot_be_judged SEG-OUT-CC4FC1767C4D
nodeid: tests/unit/test_cli_case.py::test_case_refresh_of_a_missing_case_root_cannot_be_judged
result: passed
Test Outcome: test_case_refresh_prints_each_schema_it_rewrote_and_exits_zero SEG-OUT-73D302D6F71C
nodeid: tests/unit/test_cli_case.py::test_case_refresh_prints_each_schema_it_rewrote_and_exits_zero
result: passed
Test Outcome: test_case_remove_removes_only_the_selectors_names SEG-OUT-CAB3EFAC042A
nodeid: tests/unit/test_cli_case.py::test_case_remove_removes_only_the_selectors_names
result: passed
Test Outcome: test_case_remove_with_no_match_cannot_be_judged SEG-OUT-FFFC655647ED
nodeid: tests/unit/test_cli_case.py::test_case_remove_with_no_match_cannot_be_judged
result: passed
Test Outcome: test_case_sync_over_a_composed_producer_writes_60_nodes_and_62_edges_all_pending SEG-OUT-12BF34A370AF
nodeid: tests/unit/test_cli_case.py::test_case_sync_over_a_composed_producer_writes_60_nodes_and_62_edges_all_pending
result: passed
Test Outcome: test_case_sync_over_a_store_with_outcomes_leaves_them_out_of_the_case SEG-OUT-E85AB9ED6632
nodeid: tests/unit/test_cli_case.py::test_case_sync_over_a_store_with_outcomes_leaves_them_out_of_the_case
result: passed
Test Outcome: test_case_sync_over_an_unbuildable_stream_writes_nothing_and_cannot_be_judged SEG-OUT-04C0EC573C2C
nodeid: tests/unit/test_cli_case.py::test_case_sync_over_an_unbuildable_stream_writes_nothing_and_cannot_be_judged
result: passed
Test Outcome: test_case_sync_over_an_unreadable_producer_writes_nothing SEG-OUT-C392160D8002
nodeid: tests/unit/test_cli_case.py::test_case_sync_over_an_unreadable_producer_writes_nothing
result: passed
Test Outcome: test_case_sync_reports_vanished_edges_without_removing_them SEG-OUT-0A22A4910C1F
nodeid: tests/unit/test_cli_case.py::test_case_sync_reports_vanished_edges_without_removing_them
result: passed
Test Outcome: test_case_sync_with_a_source_directory_outside_the_repository_exits_2_and_writes_nothing SEG-OUT-81BE8AC2072D
nodeid: tests/unit/test_cli_case.py::test_case_sync_with_a_source_directory_outside_the_repository_exits_2_and_writes_nothing
result: passed
Test Outcome: test_case_sync_with_an_absent_extractor_source_file_exits_2_without_a_traceback SEG-OUT-B3D4FF8BE03C
nodeid: tests/unit/test_cli_case.py::test_case_sync_with_an_absent_extractor_source_file_exits_2_without_a_traceback
result: passed
Test Outcome: test_case_sync_without_a_producer_cannot_be_judged SEG-OUT-A53D159E89C1
nodeid: tests/unit/test_cli_case.py::test_case_sync_without_a_producer_cannot_be_judged
result: passed
Test Outcome: test_case_sync_writes_the_derived_stream_never_demoting SEG-OUT-FED4978F3A29
nodeid: tests/unit/test_cli_case.py::test_case_sync_writes_the_derived_stream_never_demoting
result: passed

tests/unit/test_cli_edge.py

Test Outcome: test_a_given_revision_is_recorded_for_every_endpoint_as_given SEG-OUT-6D722006CCCF
nodeid: tests/unit/test_cli_edge.py::test_a_given_revision_is_recorded_for_every_endpoint_as_given
result: passed
Test Outcome: test_edge_affirm_a_mixed_selection_affirms_its_affirmable_members SEG-OUT-7C40484A40E3
nodeid: tests/unit/test_cli_edge.py::test_edge_affirm_a_mixed_selection_affirms_its_affirmable_members
result: passed
Test Outcome: test_edge_affirm_with_a_dirty_anchor_writes_nothing SEG-OUT-7CB3E097A733
nodeid: tests/unit/test_cli_edge.py::test_edge_affirm_with_a_dirty_anchor_writes_nothing
result: passed
Test Outcome: test_edge_affirm_with_a_role_outside_the_vocabulary_writes_nothing SEG-OUT-25861CB05134
nodeid: tests/unit/test_cli_edge.py::test_edge_affirm_with_a_role_outside_the_vocabulary_writes_nothing
result: passed
Test Outcome: test_edge_affirm_with_no_affirmable_member_is_a_refusal SEG-OUT-DEFA2935A9A0
nodeid: tests/unit/test_cli_edge.py::test_edge_affirm_with_no_affirmable_member_is_a_refusal
result: passed
Test Outcome: test_edge_affirm_with_no_matching_edge_cannot_be_judged SEG-OUT-524368F53CFF
nodeid: tests/unit/test_cli_edge.py::test_edge_affirm_with_no_matching_edge_cannot_be_judged
result: passed
Test Outcome: test_edge_affirm_with_no_selector_cannot_be_judged SEG-OUT-AF1AA59F3A5B
nodeid: tests/unit/test_cli_edge.py::test_edge_affirm_with_no_selector_cannot_be_judged
result: passed
Test Outcome: test_edge_affirm_writes_an_event_without_node_hashes_and_an_edge_with_its_hash SEG-OUT-EB74CBD59977
nodeid: tests/unit/test_cli_edge.py::test_edge_affirm_writes_an_event_without_node_hashes_and_an_edge_with_its_hash
result: passed
Test Outcome: test_edge_show_renders_the_tag_and_per_hash_comparison SEG-OUT-3430039540B7
nodeid: tests/unit/test_cli_edge.py::test_edge_show_renders_the_tag_and_per_hash_comparison
result: passed
Test Outcome: test_edge_show_verbose_text_renders_hashes_and_before_content SEG-OUT-70C0DD34D08E
nodeid: tests/unit/test_cli_edge.py::test_edge_show_verbose_text_renders_hashes_and_before_content
result: passed
Test Outcome: test_edge_show_with_no_match_cannot_be_judged SEG-OUT-C15955778E47
nodeid: tests/unit/test_cli_edge.py::test_edge_show_with_no_match_cannot_be_judged
result: passed
Test Outcome: test_role_and_reason_are_required_with_no_default SEG-OUT-34D6F9D60B73
nodeid: tests/unit/test_cli_edge.py::test_role_and_reason_are_required_with_no_default
result: passed

tests/unit/test_cli_graph.py

Test Outcome: test_graph_check_json_keeps_the_by_kind_mappings SEG-OUT-C4850BF20BF2
nodeid: tests/unit/test_cli_graph.py::test_graph_check_json_keeps_the_by_kind_mappings
result: passed
Test Outcome: test_graph_check_over_a_case_synced_from_a_composed_producer_reports_62_pending SEG-OUT-0DF106A26DB8
nodeid: tests/unit/test_cli_graph.py::test_graph_check_over_a_case_synced_from_a_composed_producer_reports_62_pending
result: passed
Test Outcome: test_graph_check_over_an_unbuildable_stream_is_the_negative_verdict SEG-OUT-D788B01501DD
nodeid: tests/unit/test_cli_graph.py::test_graph_check_over_an_unbuildable_stream_is_the_negative_verdict
result: passed
Test Outcome: test_graph_check_renders_counts_by_kind_as_words SEG-OUT-C14881CD0AAB
nodeid: tests/unit/test_cli_graph.py::test_graph_check_renders_counts_by_kind_as_words
result: passed
Test Outcome: test_graph_check_reports_counts_by_kind_and_pending SEG-OUT-562087471EA7
nodeid: tests/unit/test_cli_graph.py::test_graph_check_reports_counts_by_kind_and_pending
result: passed
Test Outcome: test_graph_status_derives_every_edges_state SEG-OUT-BE9CBDE5B27B
nodeid: tests/unit/test_cli_graph.py::test_graph_status_derives_every_edges_state
result: passed
Test Outcome: test_graph_status_json_row_of_a_vanished_edge_has_no_state_key SEG-OUT-A1C37CE46D01
nodeid: tests/unit/test_cli_graph.py::test_graph_status_json_row_of_a_vanished_edge_has_no_state_key
result: passed
Test Outcome: test_graph_status_lists_a_vanished_edge_without_a_state SEG-OUT-9DE358B26ACE
nodeid: tests/unit/test_cli_graph.py::test_graph_status_lists_a_vanished_edge_without_a_state
result: passed
Test Outcome: test_graph_status_lists_vanished_edges_after_every_derived_edge SEG-OUT-1181C05E5801
nodeid: tests/unit/test_cli_graph.py::test_graph_status_lists_vanished_edges_after_every_derived_edge
result: passed
Test Outcome: test_graph_status_naming_a_suspect_or_broken_edge_is_the_negative_verdict SEG-OUT-AC6E5223A028
nodeid: tests/unit/test_cli_graph.py::test_graph_status_naming_a_suspect_or_broken_edge_is_the_negative_verdict
result: passed
Test Outcome: test_graph_status_over_a_composed_producer_exits_0_with_every_edge_pending SEG-OUT-CEDAB132B6E5
nodeid: tests/unit/test_cli_graph.py::test_graph_status_over_a_composed_producer_exits_0_with_every_edge_pending
result: passed
Test Outcome: test_graph_status_over_a_named_bundle_lists_strong_edges_and_counts_evidence SEG-OUT-BA7071C6CC6C
nodeid: tests/unit/test_cli_graph.py::test_graph_status_over_a_named_bundle_lists_strong_edges_and_counts_evidence
result: passed
Test Outcome: test_graph_status_over_an_unbuildable_current_stream_cannot_be_judged SEG-OUT-B8168C6EE0B8
nodeid: tests/unit/test_cli_graph.py::test_graph_status_over_an_unbuildable_current_stream_cannot_be_judged
result: passed
Test Outcome: test_graph_status_pending_count_ignores_a_vanished_edge SEG-OUT-1165D2D59555
nodeid: tests/unit/test_cli_graph.py::test_graph_status_pending_count_ignores_a_vanished_edge
result: passed
Test Outcome: test_graph_status_text_ends_with_the_evidence_counts SEG-OUT-FC2BA6F07C24
nodeid: tests/unit/test_cli_graph.py::test_graph_status_text_ends_with_the_evidence_counts
result: passed
Test Outcome: test_graph_status_verbose_adds_the_per_hash_comparison SEG-OUT-93AFAAABE7FD
nodeid: tests/unit/test_cli_graph.py::test_graph_status_verbose_adds_the_per_hash_comparison
result: passed
Test Outcome: test_graph_status_verbose_gives_a_vanished_edge_no_comparison SEG-OUT-67D0B32841D8
nodeid: tests/unit/test_cli_graph.py::test_graph_status_verbose_gives_a_vanished_edge_no_comparison
result: passed
Test Outcome: test_graph_status_verdict_is_positive_when_only_a_vanished_edge_was_recorded_active SEG-OUT-BD776705F4F1
nodeid: tests/unit/test_cli_graph.py::test_graph_status_verdict_is_positive_when_only_a_vanished_edge_was_recorded_active
result: passed
Test Outcome: test_graph_status_with_only_pending_edges_is_the_positive_verdict SEG-OUT-D76A0DB45ED9
nodeid: tests/unit/test_cli_graph.py::test_graph_status_with_only_pending_edges_is_the_positive_verdict
result: passed
Test Outcome: test_graph_status_without_a_producer_cannot_be_judged SEG-OUT-554E17904294
nodeid: tests/unit/test_cli_graph.py::test_graph_status_without_a_producer_cannot_be_judged
result: passed
Test Outcome: test_graph_status_without_a_revision_over_a_stream_with_outcomes_cannot_be_judged SEG-OUT-6DC838F359CC
nodeid: tests/unit/test_cli_graph.py::test_graph_status_without_a_revision_over_a_stream_with_outcomes_cannot_be_judged
result: passed

tests/unit/test_cli_proof.py

Test Outcome: test_a_blocked_scope_is_the_negative_verdict SEG-OUT-2F9DA1E75F65
nodeid: tests/unit/test_cli_proof.py::test_a_blocked_scope_is_the_negative_verdict
result: passed
Test Outcome: test_no_configured_value_reaches_the_design_root SEG-OUT-2C78BAA12A7E
nodeid: tests/unit/test_cli_proof.py::test_no_configured_value_reaches_the_design_root
result: passed
Test Outcome: test_proof_check_json_is_exactly_the_coverage_report_document SEG-OUT-C79D9077765E
nodeid: tests/unit/test_cli_proof.py::test_proof_check_json_is_exactly_the_coverage_report_document
result: passed
Test Outcome: test_proof_check_reports_the_gates_coverage_verdict SEG-OUT-F721FAD009FB
nodeid: tests/unit/test_cli_proof.py::test_proof_check_reports_the_gates_coverage_verdict
result: passed
Test Outcome: test_proof_generate_output_dir_relocates_the_write_root SEG-OUT-322C992C3260
nodeid: tests/unit/test_cli_proof.py::test_proof_generate_output_dir_relocates_the_write_root
result: passed
Test Outcome: test_proof_generate_refused_renders_the_gates_diagnostics SEG-OUT-D174D5D70326
nodeid: tests/unit/test_cli_proof.py::test_proof_generate_refused_renders_the_gates_diagnostics
result: passed
Test Outcome: test_proof_generate_writes_under_the_case_by_default SEG-OUT-A1559024FDAF
nodeid: tests/unit/test_cli_proof.py::test_proof_generate_writes_under_the_case_by_default
result: passed

tests/unit/test_cli_repository.py

Test Outcome: test_a_clean_repository_reports_clean SEG-OUT-C3944B69E523
nodeid: tests/unit/test_cli_repository.py::test_a_clean_repository_reports_clean
result: passed
Test Outcome: test_a_dirty_anchored_path_refuses_and_names_it SEG-OUT-E54B1CA9B90C
nodeid: tests/unit/test_cli_repository.py::test_a_dirty_anchored_path_refuses_and_names_it
result: passed
Test Outcome: test_a_dirty_anchored_path_with_a_space_in_its_name_is_named_intact SEG-OUT-0851FD3F32CD
nodeid: tests/unit/test_cli_repository.py::test_a_dirty_anchored_path_with_a_space_in_its_name_is_named_intact
result: passed
Test Outcome: test_a_dirty_unanchored_path_does_not_refuse SEG-OUT-E56D5CF22F60
nodeid: tests/unit/test_cli_repository.py::test_a_dirty_unanchored_path_does_not_refuse
result: passed
Test Outcome: test_a_discovered_revision_looks_like_a_revision SEG-OUT-48980C7B46E1
nodeid: tests/unit/test_cli_repository.py::test_a_discovered_revision_looks_like_a_revision
result: passed
Test Outcome: test_an_uncommitted_anchored_path_is_dirty_too SEG-OUT-24544DD3F032
nodeid: tests/unit/test_cli_repository.py::test_an_uncommitted_anchored_path_is_dirty_too
result: passed
Test Outcome: test_before_content_at_a_recorded_revision_survives_a_later_commit SEG-OUT-A000F0B4FF2D
nodeid: tests/unit/test_cli_repository.py::test_before_content_at_a_recorded_revision_survives_a_later_commit
result: passed
Test Outcome: test_before_content_for_a_path_absent_at_that_revision_is_refused SEG-OUT-643D8B394A6E
nodeid: tests/unit/test_cli_repository.py::test_before_content_for_a_path_absent_at_that_revision_is_refused
result: passed
Test Outcome: test_discovery_returns_the_commit SEG-OUT-06C8E8C487AD
nodeid: tests/unit/test_cli_repository.py::test_discovery_returns_the_commit
result: passed

tests/unit/test_commitment.py

Test Outcome: test_a_node_without_content_hashes_is_rejected SEG-OUT-696C2A23BEA2
nodeid: tests/unit/test_commitment.py::test_a_node_without_content_hashes_is_rejected
result: passed
Test Outcome: test_a_single_span_node_hash_is_not_its_content_hash SEG-OUT-02F1E9BD9E2B
nodeid: tests/unit/test_commitment.py::test_a_single_span_node_hash_is_not_its_content_hash
result: passed
Test Outcome: test_design_root_matches_the_transcribed_formula SEG-OUT-DC8C9ADDF2F3
nodeid: tests/unit/test_commitment.py::test_design_root_matches_the_transcribed_formula
result: passed
Test Outcome: test_digests_enter_as_raw_bytes_and_hex_is_rejected SEG-OUT-4221F8B9CFE5
nodeid: tests/unit/test_commitment.py::test_digests_enter_as_raw_bytes_and_hex_is_rejected
result: passed
Test Outcome: test_each_preimage_leads_with_its_own_length_prefixed_tag SEG-OUT-B4F080709AEC
nodeid: tests/unit/test_commitment.py::test_each_preimage_leads_with_its_own_length_prefixed_tag
result: passed
Test Outcome: test_edge_hash_matches_the_transcribed_formula SEG-OUT-0057B20F136D
nodeid: tests/unit/test_commitment.py::test_edge_hash_matches_the_transcribed_formula
result: passed
Test Outcome: test_edge_tuple_matches_the_transcribed_formula SEG-OUT-DD48379AFF75
nodeid: tests/unit/test_commitment.py::test_edge_tuple_matches_the_transcribed_formula
result: passed
Test Outcome: test_every_derivation_returns_thirty_two_raw_bytes SEG-OUT-F84FBDD7BA46
nodeid: tests/unit/test_commitment.py::test_every_derivation_returns_thirty_two_raw_bytes
result: passed
Test Outcome: test_framing_separates_an_edge_type_absorbed_into_an_endpoint SEG-OUT-3522D7356438
nodeid: tests/unit/test_commitment.py::test_framing_separates_an_edge_type_absorbed_into_an_endpoint
result: passed
Test Outcome: test_framing_separates_endpoints_that_concatenation_would_merge SEG-OUT-5218AC1AD6A7
nodeid: tests/unit/test_commitment.py::test_framing_separates_endpoints_that_concatenation_would_merge
result: passed
Test Outcome: test_node_field_order_does_not_reach_the_hash SEG-OUT-0719EFF994C6
nodeid: tests/unit/test_commitment.py::test_node_field_order_does_not_reach_the_hash
result: passed
Test Outcome: test_node_hash_matches_the_transcribed_formula SEG-OUT-665B8FFA0643
nodeid: tests/unit/test_commitment.py::test_node_hash_matches_the_transcribed_formula
result: passed
Test Outcome: test_the_edge_hash_binds_both_endpoint_node_hashes SEG-OUT-B7C629878EE6
nodeid: tests/unit/test_commitment.py::test_the_edge_hash_binds_both_endpoint_node_hashes
result: passed
Test Outcome: test_the_edge_hash_binds_the_edge_type SEG-OUT-CBBBE0349B3C
nodeid: tests/unit/test_commitment.py::test_the_edge_hash_binds_the_edge_type
result: passed
Test Outcome: test_the_edge_hash_is_directional SEG-OUT-0997364CEE61
nodeid: tests/unit/test_commitment.py::test_the_edge_hash_is_directional
result: passed
Test Outcome: test_the_layer_does_not_mutate_its_inputs SEG-OUT-E6E8BC4B4646
nodeid: tests/unit/test_commitment.py::test_the_layer_does_not_mutate_its_inputs
result: passed
Test Outcome: test_the_name_is_bound_distinctly_from_the_digest SEG-OUT-12E1945CD044
nodeid: tests/unit/test_commitment.py::test_the_name_is_bound_distinctly_from_the_digest
result: passed
Test Outcome: test_the_node_hash_derives_from_the_node_type SEG-OUT-270F28D27659
nodeid: tests/unit/test_commitment.py::test_the_node_hash_derives_from_the_node_type
result: passed
Test Outcome: test_the_node_hash_pairs_each_content_hash_with_its_name SEG-OUT-39A402BB7EF3
nodeid: tests/unit/test_commitment.py::test_the_node_hash_pairs_each_content_hash_with_its_name
result: passed
Test Outcome: test_the_root_accepts_exhaustible_iterables SEG-OUT-8DEBCFCAB5CE
nodeid: tests/unit/test_commitment.py::test_the_root_accepts_exhaustible_iterables
result: passed
Test Outcome: test_the_root_is_independent_of_node_and_edge_input_order SEG-OUT-CDCD886C5D25
nodeid: tests/unit/test_commitment.py::test_the_root_is_independent_of_node_and_edge_input_order
result: passed
Test Outcome: test_the_root_of_an_empty_design_set_is_total SEG-OUT-E7828EA65E70
nodeid: tests/unit/test_commitment.py::test_the_root_of_an_empty_design_set_is_total
result: passed
Test Outcome: test_the_root_preserves_duplicate_node_hashes SEG-OUT-2D3E3890B99A
nodeid: tests/unit/test_commitment.py::test_the_root_preserves_duplicate_node_hashes
result: passed
Test Outcome: test_the_root_reflects_its_edge_set SEG-OUT-BF2CA101A850
nodeid: tests/unit/test_commitment.py::test_the_root_reflects_its_edge_set
result: passed
Test Outcome: test_the_root_reflects_its_metadata SEG-OUT-8336CF1E0FF6
nodeid: tests/unit/test_commitment.py::test_the_root_reflects_its_metadata
result: passed
Test Outcome: test_the_root_treats_metadata_as_opaque_bytes SEG-OUT-C6F1001B128C
nodeid: tests/unit/test_commitment.py::test_the_root_treats_metadata_as_opaque_bytes
result: passed
Test Outcome: test_the_same_inputs_always_produce_the_same_hashes SEG-OUT-014007004E19
nodeid: tests/unit/test_commitment.py::test_the_same_inputs_always_produce_the_same_hashes
result: passed
Test Outcome: test_the_three_domain_tags_are_distinct SEG-OUT-7E52D9345587
nodeid: tests/unit/test_commitment.py::test_the_three_domain_tags_are_distinct
result: passed

tests/unit/test_composed_producer.py

Test Outcome: test_a_composed_producer_gives_the_bundle_digest_of_each_outcome SEG-OUT-D49B84544D10
nodeid: tests/unit/test_composed_producer.py::test_a_composed_producer_gives_the_bundle_digest_of_each_outcome
result: passed
Test Outcome: test_a_source_that_is_not_composed_gives_no_bundle_digest SEG-OUT-305C297B1A5B
nodeid: tests/unit/test_composed_producer.py::test_a_source_that_is_not_composed_gives_no_bundle_digest
result: passed
Test Outcome: test_composed_producer_can_be_walked_twice SEG-OUT-431E087E0367
nodeid: tests/unit/test_composed_producer.py::test_composed_producer_can_be_walked_twice
result: passed
Test Outcome: test_composed_producer_leaves_a_duplicate_identifier_to_the_graph_builder SEG-OUT-B6A6A8443C59
nodeid: tests/unit/test_composed_producer.py::test_composed_producer_leaves_a_duplicate_identifier_to_the_graph_builder
result: passed
Test Outcome: test_composed_producer_lets_a_member_failure_while_streaming_propagate SEG-OUT-3DF6C9E5A32C
nodeid: tests/unit/test_composed_producer.py::test_composed_producer_lets_a_member_failure_while_streaming_propagate
result: passed
Test Outcome: test_composed_producer_of_no_members_supplies_nothing SEG-OUT-1B6CC3BFCF4D
nodeid: tests/unit/test_composed_producer.py::test_composed_producer_of_no_members_supplies_nothing
result: passed
Test Outcome: test_composed_producer_yields_edges_in_member_order SEG-OUT-F6468810D7E2
nodeid: tests/unit/test_composed_producer.py::test_composed_producer_yields_edges_in_member_order
result: passed
Test Outcome: test_composed_producer_yields_nodes_in_member_order SEG-OUT-990EDA02C368
nodeid: tests/unit/test_composed_producer.py::test_composed_producer_yields_nodes_in_member_order
result: passed
Test Outcome: test_from_config_accepts_a_source_directory_equal_to_the_repository SEG-OUT-FCB75F1ECB3A
nodeid: tests/unit/test_composed_producer.py::test_from_config_accepts_a_source_directory_equal_to_the_repository
result: passed
Test Outcome: test_from_config_anchors_an_outcome_at_the_digest_of_its_bundle SEG-OUT-961A38638C6C
nodeid: tests/unit/test_composed_producer.py::test_from_config_anchors_an_outcome_at_the_digest_of_its_bundle
result: passed
Test Outcome: test_from_config_builds_one_extractor_over_all_the_bundles_in_the_order_named SEG-OUT-2800AACDA945
nodeid: tests/unit/test_composed_producer.py::test_from_config_builds_one_extractor_over_all_the_bundles_in_the_order_named
result: passed
Test Outcome: test_from_config_chains_the_outcome_extractor_after_the_content_extractor SEG-OUT-252645F30804
nodeid: tests/unit/test_composed_producer.py::test_from_config_chains_the_outcome_extractor_after_the_content_extractor
result: passed
Test Outcome: test_from_config_extractor_only_supplies_31_nodes_and_40_edges_anchored_at_the_repository SEG-OUT-83559AD86024
nodeid: tests/unit/test_composed_producer.py::test_from_config_extractor_only_supplies_31_nodes_and_40_edges_anchored_at_the_repository
result: passed
Test Outcome: test_from_config_reader_keys_win_over_producer_root SEG-OUT-F1F3C8C94463
nodeid: tests/unit/test_composed_producer.py::test_from_config_reader_keys_win_over_producer_root
result: passed
Test Outcome: test_from_config_reads_a_bundle_named_twice_once SEG-OUT-8E1556538578
nodeid: tests/unit/test_composed_producer.py::test_from_config_reads_a_bundle_named_twice_once
result: passed
Test Outcome: test_from_config_refuses_a_bundle_path_that_is_not_a_directory SEG-OUT-FD0169C7B55B
nodeid: tests/unit/test_composed_producer.py::test_from_config_refuses_a_bundle_path_that_is_not_a_directory
result: passed
Test Outcome: test_from_config_refuses_a_missing_export_as_a_source_error SEG-OUT-A3FC5C81D441
nodeid: tests/unit/test_composed_producer.py::test_from_config_refuses_a_missing_export_as_a_source_error
result: passed
Test Outcome: test_from_config_refuses_a_reader_with_no_producer_repository SEG-OUT-A8100740F02A
nodeid: tests/unit/test_composed_producer.py::test_from_config_refuses_a_reader_with_no_producer_repository
result: passed
Test Outcome: test_from_config_refuses_a_repository_name_missing_from_the_map SEG-OUT-0E3D17983156
nodeid: tests/unit/test_composed_producer.py::test_from_config_refuses_a_repository_name_missing_from_the_map
result: passed
Test Outcome: test_from_config_refuses_a_source_directory_outside_the_repository SEG-OUT-7D8CAA4E66E8
nodeid: tests/unit/test_composed_producer.py::test_from_config_refuses_a_source_directory_outside_the_repository
result: passed
Test Outcome: test_from_config_refuses_bundles_over_the_would_be_store_at_the_root SEG-OUT-AE4F9238C121
nodeid: tests/unit/test_composed_producer.py::test_from_config_refuses_bundles_over_the_would_be_store_at_the_root
result: passed
Test Outcome: test_from_config_refuses_bundles_without_specifications SEG-OUT-19C23FC7B0CB
nodeid: tests/unit/test_composed_producer.py::test_from_config_refuses_bundles_without_specifications
result: passed
Test Outcome: test_from_config_relativizes_a_configuration_in_a_subdirectory SEG-OUT-3A70FA83E26E
nodeid: tests/unit/test_composed_producer.py::test_from_config_relativizes_a_configuration_in_a_subdirectory
result: passed
Test Outcome: test_from_config_requirements_only_supplies_29_nodes_and_22_edges_anchored_at_the_repository SEG-OUT-4F77E297DB5F
nodeid: tests/unit/test_composed_producer.py::test_from_config_requirements_only_supplies_29_nodes_and_22_edges_anchored_at_the_repository
result: passed
Test Outcome: test_from_config_surfaces_a_missing_source_file_as_a_source_error_when_streamed SEG-OUT-16A02FD297EA
nodeid: tests/unit/test_composed_producer.py::test_from_config_surfaces_a_missing_source_file_as_a_source_error_when_streamed
result: passed
Test Outcome: test_from_config_with_a_bundle_supplies_136_nodes_and_214_edges SEG-OUT-E77228BFEAA3
nodeid: tests/unit/test_composed_producer.py::test_from_config_with_a_bundle_supplies_136_nodes_and_214_edges
result: passed
Test Outcome: test_from_config_with_all_three_blocks_chains_requirements_before_content SEG-OUT-2D98E0D263D7
nodeid: tests/unit/test_composed_producer.py::test_from_config_with_all_three_blocks_chains_requirements_before_content
result: passed
Test Outcome: test_from_config_with_no_bundle_supplies_no_evidence_and_reads_none SEG-OUT-A4F9441BEE18
nodeid: tests/unit/test_composed_producer.py::test_from_config_with_no_bundle_supplies_no_evidence_and_reads_none
result: passed
Test Outcome: test_from_config_with_only_producer_root_is_the_store_loader SEG-OUT-D29305438C31
nodeid: tests/unit/test_composed_producer.py::test_from_config_with_only_producer_root_is_the_store_loader
result: passed
Test Outcome: test_from_config_without_a_producer_block_or_root_is_refused SEG-OUT-22BD0CA7A0D3
nodeid: tests/unit/test_composed_producer.py::test_from_config_without_a_producer_block_or_root_is_refused
result: passed
Test Outcome: test_from_config_without_implementations_supplies_no_witnesses_edge SEG-OUT-645D9F806586
nodeid: tests/unit/test_composed_producer.py::test_from_config_without_implementations_supplies_no_witnesses_edge
result: passed

tests/unit/test_config.py

Test Outcome: test_a_callers_case_is_not_resolved_against_the_files_directory SEG-OUT-9663DDE3BAAA
nodeid: tests/unit/test_config.py::test_a_callers_case_is_not_resolved_against_the_files_directory
result: passed
Test Outcome: test_a_callers_case_overrides_the_files SEG-OUT-3B4A496AB35C
nodeid: tests/unit/test_config.py::test_a_callers_case_overrides_the_files
result: passed
Test Outcome: test_a_configuration_without_a_producer_block_carries_no_producer SEG-OUT-DBBD64BEDA5B
nodeid: tests/unit/test_config.py::test_a_configuration_without_a_producer_block_carries_no_producer
result: passed
Test Outcome: test_a_file_in_a_subdirectory_yields_the_same_paths_from_any_working_directory SEG-OUT-8D109C01A3ED
nodeid: tests/unit/test_config.py::test_a_file_in_a_subdirectory_yields_the_same_paths_from_any_working_directory
result: passed
Test Outcome: test_a_file_lacking_a_case_key_defaults_the_case_against_the_working_directory SEG-OUT-025951F884D2
nodeid: tests/unit/test_config.py::test_a_file_lacking_a_case_key_defaults_the_case_against_the_working_directory
result: passed
Test Outcome: test_a_name_absent_from_the_repository_map_resolves_to_no_repository SEG-OUT-2A42BC2927CC
nodeid: tests/unit/test_config.py::test_a_name_absent_from_the_repository_map_resolves_to_no_repository
result: passed
Test Outcome: test_a_producer_block_naming_only_a_root_carries_no_producer SEG-OUT-B4D4731BEE40
nodeid: tests/unit/test_config.py::test_a_producer_block_naming_only_a_root_carries_no_producer
result: passed
Test Outcome: test_a_producer_path_that_is_not_a_string_is_a_refusal SEG-OUT-641B92D5DAB6
nodeid: tests/unit/test_config.py::test_a_producer_path_that_is_not_a_string_is_a_refusal
result: passed
Test Outcome: test_a_producer_repository_that_is_not_a_string_is_a_refusal SEG-OUT-F7A2A65CF54C
nodeid: tests/unit/test_config.py::test_a_producer_repository_that_is_not_a_string_is_a_refusal
result: passed
Test Outcome: test_a_producer_root_is_still_carried_beside_the_new_keys SEG-OUT-AFE6AB39652E
nodeid: tests/unit/test_config.py::test_a_producer_root_is_still_carried_beside_the_new_keys
result: passed
Test Outcome: test_a_producer_sub_block_that_is_not_a_mapping_is_a_refusal SEG-OUT-41BB88A0DF90
nodeid: tests/unit/test_config.py::test_a_producer_sub_block_that_is_not_a_mapping_is_a_refusal
result: passed
Test Outcome: test_a_producer_that_names_a_run_is_refused_whatever_it_holds[⁠[]] SEG-OUT-378F82006A64
nodeid: tests/unit/test_config.py::test_a_producer_that_names_a_run_is_refused_whatever_it_holds[[]]
result: passed
Test Outcome: test_a_producer_that_names_a_run_is_refused_whatever_it_holds[⁠[{artifact: a, revision: r, name: n}]] SEG-OUT-97667E169419
nodeid: tests/unit/test_config.py::test_a_producer_that_names_a_run_is_refused_whatever_it_holds[[{artifact: a, revision: r, name: n}]]
result: passed
Test Outcome: test_a_producer_that_names_a_run_is_refused_whatever_it_holds[⁠[{bundle: a, digest: 'sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}]] SEG-OUT-AF05C4348478
nodeid: tests/unit/test_config.py::test_a_producer_that_names_a_run_is_refused_whatever_it_holds[[{bundle: a, digest: 'sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}]]
result: passed
Test Outcome: test_a_producer_that_names_a_run_is_refused_whatever_it_holds[nope] SEG-OUT-26800AB54AF0
nodeid: tests/unit/test_config.py::test_a_producer_that_names_a_run_is_refused_whatever_it_holds[nope]
result: passed
Test Outcome: test_a_reader_block_not_configured_is_none SEG-OUT-CBFCAF010FA6
nodeid: tests/unit/test_config.py::test_a_reader_block_not_configured_is_none
result: passed
Test Outcome: test_a_relative_case_resolves_against_the_files_directory SEG-OUT-2D7678503DDD
nodeid: tests/unit/test_config.py::test_a_relative_case_resolves_against_the_files_directory
result: passed
Test Outcome: test_a_relative_producer_root_resolves_against_the_files_directory SEG-OUT-2CBE9EE7E913
nodeid: tests/unit/test_config.py::test_a_relative_producer_root_resolves_against_the_files_directory
result: passed
Test Outcome: test_a_relative_repository_path_resolves_against_the_files_directory SEG-OUT-2AE6B9920ABA
nodeid: tests/unit/test_config.py::test_a_relative_repository_path_resolves_against_the_files_directory
result: passed
Test Outcome: test_a_repositories_path_of_the_wrong_type_is_a_refusal SEG-OUT-8D93FC38D419
nodeid: tests/unit/test_config.py::test_a_repositories_path_of_the_wrong_type_is_a_refusal
result: passed
Test Outcome: test_a_requirements_block_missing_its_source_is_a_refusal SEG-OUT-88DB50111B70
nodeid: tests/unit/test_config.py::test_a_requirements_block_missing_its_source_is_a_refusal
result: passed
Test Outcome: test_a_top_level_that_is_not_a_mapping_is_a_refusal SEG-OUT-2F51F5252D57
nodeid: tests/unit/test_config.py::test_a_top_level_that_is_not_a_mapping_is_a_refusal
result: passed
Test Outcome: test_an_absolute_path_in_the_file_is_carried_unchanged SEG-OUT-F99C07A8BA30
nodeid: tests/unit/test_config.py::test_an_absolute_path_in_the_file_is_carried_unchanged
result: passed
Test Outcome: test_an_absolute_producer_path_is_carried_unchanged SEG-OUT-9E4C147FC56E
nodeid: tests/unit/test_config.py::test_an_absolute_producer_path_is_carried_unchanged
result: passed
Test Outcome: test_an_implementation_name_absent_from_the_map_carries_no_repository SEG-OUT-47DF94371FFB
nodeid: tests/unit/test_config.py::test_an_implementation_name_absent_from_the_map_carries_no_repository
result: passed
Test Outcome: test_an_optional_role_vocabulary_is_carried SEG-OUT-EF8BCBB5DD49
nodeid: tests/unit/test_config.py::test_an_optional_role_vocabulary_is_carried
result: passed
Test Outcome: test_case_of_the_wrong_type_is_a_refusal SEG-OUT-119ECF2FB1FD
nodeid: tests/unit/test_config.py::test_case_of_the_wrong_type_is_a_refusal
result: passed
Test Outcome: test_comments_and_blank_lines_are_ignored SEG-OUT-63538FAC85BD
nodeid: tests/unit/test_config.py::test_comments_and_blank_lines_are_ignored
result: passed
Test Outcome: test_configuration_defaults_to_the_conventional_path SEG-OUT-EB8535CAB798
nodeid: tests/unit/test_config.py::test_configuration_defaults_to_the_conventional_path
result: passed
Test Outcome: test_configuration_is_read_from_a_given_file SEG-OUT-6DF6D8855735
nodeid: tests/unit/test_config.py::test_configuration_is_read_from_a_given_file
result: passed
Test Outcome: test_every_parameter_defaults_when_the_file_is_absent SEG-OUT-C798C274F0DC
nodeid: tests/unit/test_config.py::test_every_parameter_defaults_when_the_file_is_absent
result: passed
Test Outcome: test_every_parameter_defaults_when_the_file_is_empty SEG-OUT-0293F8AB6EF4
nodeid: tests/unit/test_config.py::test_every_parameter_defaults_when_the_file_is_empty
result: passed
Test Outcome: test_malformed_yaml_is_a_refusal SEG-OUT-4A6D834457D9
nodeid: tests/unit/test_config.py::test_malformed_yaml_is_a_refusal
result: passed
Test Outcome: test_no_role_vocabulary_configured_carries_none SEG-OUT-C947434452F8
nodeid: tests/unit/test_config.py::test_no_role_vocabulary_configured_carries_none
result: passed
Test Outcome: test_outcomes_that_are_not_a_list_are_a_refusal SEG-OUT-C725ABCE1D67
nodeid: tests/unit/test_config.py::test_outcomes_that_are_not_a_list_are_a_refusal
result: passed
Test Outcome: test_producer_configuration_is_immutable SEG-OUT-A22073A61B3D
nodeid: tests/unit/test_config.py::test_producer_configuration_is_immutable
result: passed
Test Outcome: test_producer_of_the_wrong_type_is_a_refusal SEG-OUT-01C7E639FF6D
nodeid: tests/unit/test_config.py::test_producer_of_the_wrong_type_is_a_refusal
result: passed
Test Outcome: test_repositories_of_the_wrong_type_is_a_refusal SEG-OUT-A6AE01F2C30D
nodeid: tests/unit/test_config.py::test_repositories_of_the_wrong_type_is_a_refusal
result: passed
Test Outcome: test_requirement_types_that_are_not_strings_are_a_refusal SEG-OUT-3DA2428E7925
nodeid: tests/unit/test_config.py::test_requirement_types_that_are_not_strings_are_a_refusal
result: passed
Test Outcome: test_roles_of_the_wrong_type_is_a_refusal SEG-OUT-A09C7F502AAA
nodeid: tests/unit/test_config.py::test_roles_of_the_wrong_type_is_a_refusal
result: passed
Test Outcome: test_the_case_root_defaults_to_dot_case SEG-OUT-0C1EE294A3EC
nodeid: tests/unit/test_config.py::test_the_case_root_defaults_to_dot_case
result: passed
Test Outcome: test_the_defaults_of_an_absent_file_stay_relative_to_the_working_directory SEG-OUT-01F92E8B9AB1
nodeid: tests/unit/test_config.py::test_the_defaults_of_an_absent_file_stay_relative_to_the_working_directory
result: passed
Test Outcome: test_the_implementation_export_and_doxygen_locations_are_carried SEG-OUT-095F118CD64B
nodeid: tests/unit/test_config.py::test_the_implementation_export_and_doxygen_locations_are_carried
result: passed
Test Outcome: test_the_implementation_repositorys_path_is_resolved_through_the_map SEG-OUT-FF78FDFF8F22
nodeid: tests/unit/test_config.py::test_the_implementation_repositorys_path_is_resolved_through_the_map
result: passed
Test Outcome: test_the_multi_stream_layout_is_a_supported_configuration SEG-OUT-7EC6B8D16529
nodeid: tests/unit/test_config.py::test_the_multi_stream_layout_is_a_supported_configuration
result: passed
Test Outcome: test_the_producer_location_defaults_to_none SEG-OUT-DB41754961A2
nodeid: tests/unit/test_config.py::test_the_producer_location_defaults_to_none
result: passed
Test Outcome: test_the_producer_location_is_carried SEG-OUT-64ED4A68EF13
nodeid: tests/unit/test_config.py::test_the_producer_location_is_carried
result: passed
Test Outcome: test_the_producers_repository_name_is_carried SEG-OUT-CAE0B421F9D5
nodeid: tests/unit/test_config.py::test_the_producers_repository_name_is_carried
result: passed
Test Outcome: test_the_requirement_export_location_is_carried SEG-OUT-1FE4B6BD84ED
nodeid: tests/unit/test_config.py::test_the_requirement_export_location_is_carried
result: passed
Test Outcome: test_the_requirement_source_directory_is_carried SEG-OUT-BC99EF5A932B
nodeid: tests/unit/test_config.py::test_the_requirement_source_directory_is_carried
result: passed
Test Outcome: test_the_requirement_types_are_carried_as_a_set SEG-OUT-63BD43470242
nodeid: tests/unit/test_config.py::test_the_requirement_types_are_carried_as_a_set
result: passed
Test Outcome: test_the_test_specification_export_and_doxygen_locations_are_carried SEG-OUT-EB7EE39A992A
nodeid: tests/unit/test_config.py::test_the_test_specification_export_and_doxygen_locations_are_carried
result: passed

tests/unit/test_content_extractor.py

Test Outcome: test_a_bang_opener_is_a_documentation_comment SEG-OUT-130FED2C43A6
nodeid: tests/unit/test_content_extractor.py::test_a_bang_opener_is_a_documentation_comment
result: passed
Test Outcome: test_a_banner_of_stars_is_plain SEG-OUT-30398E889909
nodeid: tests/unit/test_content_extractor.py::test_a_banner_of_stars_is_plain
result: passed
Test Outcome: test_a_blank_line_above_a_guard_line_ends_the_search SEG-OUT-34167256A69D
nodeid: tests/unit/test_content_extractor.py::test_a_blank_line_above_a_guard_line_ends_the_search
result: passed
Test Outcome: test_a_blank_line_between_the_closer_and_the_line_ends_the_search SEG-OUT-78772E65BE53
nodeid: tests/unit/test_content_extractor.py::test_a_blank_line_between_the_closer_and_the_line_ends_the_search
result: passed
Test Outcome: test_a_body_ending_at_minus_one_is_an_error_naming_the_need SEG-OUT-3977DA5126BD
nodeid: tests/unit/test_content_extractor.py::test_a_body_ending_at_minus_one_is_an_error_naming_the_need
result: passed
Test Outcome: test_a_brace_before_the_semicolon_refuses_the_declaration SEG-OUT-D9FE474A0D3D
nodeid: tests/unit/test_content_extractor.py::test_a_brace_before_the_semicolon_refuses_the_declaration
result: passed
Test Outcome: test_a_brace_line_that_is_the_first_line_leaves_no_head_and_is_refused SEG-OUT-7A6C31AA604E
nodeid: tests/unit/test_content_extractor.py::test_a_brace_line_that_is_the_first_line_leaves_no_head_and_is_refused
result: passed
Test Outcome: test_a_brace_on_a_head_line_is_refused SEG-OUT-9CA936FF7560
nodeid: tests/unit/test_content_extractor.py::test_a_brace_on_a_head_line_is_refused
result: passed
Test Outcome: test_a_closer_with_trailing_whitespace_or_crlf_is_found SEG-OUT-64F1618BD142
nodeid: tests/unit/test_content_extractor.py::test_a_closer_with_trailing_whitespace_or_crlf_is_found
result: passed
Test Outcome: test_a_comment_closing_directly_above_the_line_is_found SEG-OUT-90A55EC7AD20
nodeid: tests/unit/test_content_extractor.py::test_a_comment_closing_directly_above_the_line_is_found
result: passed
Test Outcome: test_a_declaration_ending_on_its_first_line_ends_there SEG-OUT-D162C69D6705
nodeid: tests/unit/test_content_extractor.py::test_a_declaration_ending_on_its_first_line_ends_there
result: passed
Test Outcome: test_a_declaration_ends_on_the_line_of_its_semicolon_after_continuations SEG-OUT-D5BAB71D4458
nodeid: tests/unit/test_content_extractor.py::test_a_declaration_ends_on_the_line_of_its_semicolon_after_continuations
result: passed
Test Outcome: test_a_declaration_with_no_semicolon_is_refused SEG-OUT-458060391B6F
nodeid: tests/unit/test_content_extractor.py::test_a_declaration_with_no_semicolon_is_refused
result: passed
Test Outcome: test_a_directive_that_is_not_a_guard_ends_the_search SEG-OUT-09CE8EF38497
nodeid: tests/unit/test_content_extractor.py::test_a_directive_that_is_not_a_guard_ends_the_search
result: passed
Test Outcome: test_a_doxygen_file_that_does_not_parse_is_refused SEG-OUT-01F0A06E5CBD
nodeid: tests/unit/test_content_extractor.py::test_a_doxygen_file_that_does_not_parse_is_refused
result: passed
Test Outcome: test_a_duplicate_of_a_symbol_no_need_names_is_ignored SEG-OUT-E1B40469A7DD
nodeid: tests/unit/test_content_extractor.py::test_a_duplicate_of_a_symbol_no_need_names_is_ignored
result: passed
Test Outcome: test_a_guard_line_above_the_opener_is_not_part_of_the_comment SEG-OUT-B58B480A9571
nodeid: tests/unit/test_content_extractor.py::test_a_guard_line_above_the_opener_is_not_part_of_the_comment
result: passed
Test Outcome: test_a_guard_line_of_each_kind_is_stepped_over SEG-OUT-663B2D6DF308
nodeid: tests/unit/test_content_extractor.py::test_a_guard_line_of_each_kind_is_stepped_over
result: passed
Test Outcome: test_a_head_ends_on_the_line_before_a_brace_alone_on_its_line SEG-OUT-04A5C5579319
nodeid: tests/unit/test_content_extractor.py::test_a_head_ends_on_the_line_before_a_brace_alone_on_its_line
result: passed
Test Outcome: test_a_head_of_several_lines_ends_before_the_brace_line SEG-OUT-2BC7A4B4F2FF
nodeid: tests/unit/test_content_extractor.py::test_a_head_of_several_lines_ends_before_the_brace_line
result: passed
Test Outcome: test_a_lone_carriage_return_is_not_a_line_break SEG-OUT-DAE92353158A
nodeid: tests/unit/test_content_extractor.py::test_a_lone_carriage_return_is_not_a_line_break
result: passed
Test Outcome: test_a_macros_api_span_runs_from_its_comment_through_the_define_line SEG-OUT-1C46677A3243
nodeid: tests/unit/test_content_extractor.py::test_a_macros_api_span_runs_from_its_comment_through_the_define_line
result: passed
Test Outcome: test_a_macros_body_span_is_its_located_lines SEG-OUT-625B996451CD
nodeid: tests/unit/test_content_extractor.py::test_a_macros_body_span_is_its_located_lines
result: passed
Test Outcome: test_a_member_that_is_neither_a_function_nor_a_define_is_an_error SEG-OUT-FA95B729E4C8
nodeid: tests/unit/test_content_extractor.py::test_a_member_that_is_neither_a_function_nor_a_define_is_an_error
result: passed
Test Outcome: test_a_missing_doxygen_directory_is_refused SEG-OUT-35EE7DBAA1F2
nodeid: tests/unit/test_content_extractor.py::test_a_missing_doxygen_directory_is_refused
result: passed
Test Outcome: test_a_missing_source_inside_the_root_is_an_error_naming_the_need SEG-OUT-9087CAD93708
nodeid: tests/unit/test_content_extractor.py::test_a_missing_source_inside_the_root_is_an_error_naming_the_need
result: passed
Test Outcome: test_a_need_whose_id_differs_from_its_key_is_refused_naming_the_need SEG-OUT-2491B3905EAB
nodeid: tests/unit/test_content_extractor.py::test_a_need_whose_id_differs_from_its_key_is_refused_naming_the_need
result: passed
Test Outcome: test_a_need_without_its_symbol_is_refused_naming_the_need SEG-OUT-A2B5658C573F
nodeid: tests/unit/test_content_extractor.py::test_a_need_without_its_symbol_is_refused_naming_the_need
result: passed
Test Outcome: test_a_one_line_documentation_comment_is_its_own_opener_and_closer SEG-OUT-F19F268267D5
nodeid: tests/unit/test_content_extractor.py::test_a_one_line_documentation_comment_is_its_own_opener_and_closer
result: passed
Test Outcome: test_a_plain_block_comment_is_not_a_documentation_comment SEG-OUT-55D3DCDFFEB5
nodeid: tests/unit/test_content_extractor.py::test_a_plain_block_comment_is_not_a_documentation_comment
result: passed
Test Outcome: test_a_relative_path_leaving_the_root_is_refused_before_the_file_is_read SEG-OUT-3263CB3BE223
nodeid: tests/unit/test_content_extractor.py::test_a_relative_path_leaving_the_root_is_refused_before_the_file_is_read
result: passed
Test Outcome: test_a_same_file_functions_api_span_ends_before_its_brace_line SEG-OUT-22C502280F8F
nodeid: tests/unit/test_content_extractor.py::test_a_same_file_functions_api_span_ends_before_its_brace_line
result: passed
Test Outcome: test_a_same_file_functions_body_span_is_its_located_lines SEG-OUT-DDF17687ADA6
nodeid: tests/unit/test_content_extractor.py::test_a_same_file_functions_body_span_is_its_located_lines
result: passed
Test Outcome: test_a_same_file_head_holding_a_brace_is_an_error_naming_the_need SEG-OUT-177171EB4A41
nodeid: tests/unit/test_content_extractor.py::test_a_same_file_head_holding_a_brace_is_an_error_naming_the_need
result: passed
Test Outcome: test_a_second_pass_reads_the_source_again SEG-OUT-2D0CF80FF6F7
nodeid: tests/unit/test_content_extractor.py::test_a_second_pass_reads_the_source_again
result: passed
Test Outcome: test_a_semicolon_in_a_block_comment_is_skipped SEG-OUT-3D8CCA75F99E
nodeid: tests/unit/test_content_extractor.py::test_a_semicolon_in_a_block_comment_is_skipped
result: passed
Test Outcome: test_a_semicolon_in_a_line_comment_is_skipped SEG-OUT-8428E57C52BF
nodeid: tests/unit/test_content_extractor.py::test_a_semicolon_in_a_line_comment_is_skipped
result: passed
Test Outcome: test_a_semicolon_in_a_multi_line_block_comment_is_skipped SEG-OUT-FD305B9B3364
nodeid: tests/unit/test_content_extractor.py::test_a_semicolon_in_a_multi_line_block_comment_is_skipped
result: passed
Test Outcome: test_a_semicolon_inside_parentheses_does_not_end_the_declaration SEG-OUT-66C188FCCA6A
nodeid: tests/unit/test_content_extractor.py::test_a_semicolon_inside_parentheses_does_not_end_the_declaration
result: passed
Test Outcome: test_a_source_file_is_opened_once_per_pass SEG-OUT-78A7DFDF4B7E
nodeid: tests/unit/test_content_extractor.py::test_a_source_file_is_opened_once_per_pass
result: passed
Test Outcome: test_a_span_ending_before_it_starts_is_refused SEG-OUT-35D49C60F0F1
nodeid: tests/unit/test_content_extractor.py::test_a_span_ending_before_it_starts_is_refused
result: passed
Test Outcome: test_a_span_ending_on_an_unterminated_last_line_adds_no_terminator SEG-OUT-88F11B08895F
nodeid: tests/unit/test_content_extractor.py::test_a_span_ending_on_an_unterminated_last_line_adds_no_terminator
result: passed
Test Outcome: test_a_span_joins_whole_lines_with_their_line_feeds SEG-OUT-AB2C48FA0093
nodeid: tests/unit/test_content_extractor.py::test_a_span_joins_whole_lines_with_their_line_feeds
result: passed
Test Outcome: test_a_span_keeps_crlf_terminators SEG-OUT-112B1B7E3D71
nodeid: tests/unit/test_content_extractor.py::test_a_span_keeps_crlf_terminators
result: passed
Test Outcome: test_a_span_past_the_last_line_is_refused SEG-OUT-02F6E2BE6D66
nodeid: tests/unit/test_content_extractor.py::test_a_span_past_the_last_line_is_refused
result: passed
Test Outcome: test_a_span_starting_below_line_one_is_refused SEG-OUT-332FE59ABAEE
nodeid: tests/unit/test_content_extractor.py::test_a_span_starting_below_line_one_is_refused
result: passed
Test Outcome: test_a_symbol_defined_twice_is_an_error_naming_the_need SEG-OUT-512746443DDC
nodeid: tests/unit/test_content_extractor.py::test_a_symbol_defined_twice_is_an_error_naming_the_need
result: passed
Test Outcome: test_a_symbol_only_inside_a_longer_name_is_not_on_its_line SEG-OUT-62B104EFDC91
nodeid: tests/unit/test_content_extractor.py::test_a_symbol_only_inside_a_longer_name_is_not_on_its_line
result: passed
Test Outcome: test_a_symbol_the_doxygen_output_lacks_is_an_error_naming_the_need SEG-OUT-1F9D73839C6D
nodeid: tests/unit/test_content_extractor.py::test_a_symbol_the_doxygen_output_lacks_is_an_error_naming_the_need
result: passed
Test Outcome: test_a_symlink_leading_out_of_the_root_is_outside_it SEG-OUT-7997DF5C4258
nodeid: tests/unit/test_content_extractor.py::test_a_symlink_leading_out_of_the_root_is_outside_it
result: passed
Test Outcome: test_a_test_whose_located_line_is_not_its_body_start_is_an_error SEG-OUT-4EB771F4D42F
nodeid: tests/unit/test_content_extractor.py::test_a_test_whose_located_line_is_not_its_body_start_is_an_error
result: passed
Test Outcome: test_an_absolute_path_is_outside_the_root SEG-OUT-1D4B9E13F465
nodeid: tests/unit/test_content_extractor.py::test_an_absolute_path_is_outside_the_root
result: passed
Test Outcome: test_an_error_is_raised_when_the_stream_reaches_its_node_and_earlier_nodes_were_supplied SEG-OUT-96B792C74C0F
nodeid: tests/unit/test_content_extractor.py::test_an_error_is_raised_when_the_stream_reaches_its_node_and_earlier_nodes_were_supplied
result: passed
Test Outcome: test_an_export_with_two_versions_is_refused SEG-OUT-587B148C58C9
nodeid: tests/unit/test_content_extractor.py::test_an_export_with_two_versions_is_refused
result: passed
Test Outcome: test_an_export_without_needs_is_refused SEG-OUT-A0A241F8EAF0
nodeid: tests/unit/test_content_extractor.py::test_an_export_without_needs_is_refused
result: passed
Test Outcome: test_an_extractor_with_no_streams_supplies_nothing SEG-OUT-D300949DD09F
nodeid: tests/unit/test_content_extractor.py::test_an_extractor_with_no_streams_supplies_nothing
result: passed
Test Outcome: test_an_unreadable_or_non_json_export_is_refused SEG-OUT-2323D67AE937
nodeid: tests/unit/test_content_extractor.py::test_an_unreadable_or_non_json_export_is_refused
result: passed
Test Outcome: test_code_above_the_line_means_no_documentation_comment SEG-OUT-EEDD1FCBB24F
nodeid: tests/unit/test_content_extractor.py::test_code_above_the_line_means_no_documentation_comment
result: passed
Test Outcome: test_no_brace_line_by_the_end_of_the_body_is_refused SEG-OUT-6067BA146EF0
nodeid: tests/unit/test_content_extractor.py::test_no_brace_line_by_the_end_of_the_body_is_refused
result: passed
Test Outcome: test_one_definition_listed_twice_with_one_id_is_not_ambiguous SEG-OUT-7AA0392593BF
nodeid: tests/unit/test_content_extractor.py::test_one_definition_listed_twice_with_one_id_is_not_ambiguous
result: passed
Test Outcome: test_slash_line_comments_are_not_documentation_comments SEG-OUT-F48EE6686379
nodeid: tests/unit/test_content_extractor.py::test_slash_line_comments_are_not_documentation_comments
result: passed
Test Outcome: test_splitting_keeps_every_terminator_so_the_lines_rejoin_to_the_file SEG-OUT-1AF8FF2830D7
nodeid: tests/unit/test_content_extractor.py::test_splitting_keeps_every_terminator_so_the_lines_rejoin_to_the_file
result: passed
Test Outcome: test_the_empty_comment_is_plain SEG-OUT-31715F60128F
nodeid: tests/unit/test_content_extractor.py::test_the_empty_comment_is_plain
result: passed
Test Outcome: test_the_extractor_and_the_reader_refuse_the_same_exports SEG-OUT-DABAF9117A25
nodeid: tests/unit/test_content_extractor.py::test_the_extractor_and_the_reader_refuse_the_same_exports
result: passed
Test Outcome: test_the_nearest_of_two_documentation_comments_is_found SEG-OUT-7EDEFA7EE4D4
nodeid: tests/unit/test_content_extractor.py::test_the_nearest_of_two_documentation_comments_is_found
result: passed
Test Outcome: test_the_top_of_the_file_means_no_documentation_comment SEG-OUT-F960A8121891
nodeid: tests/unit/test_content_extractor.py::test_the_top_of_the_file_means_no_documentation_comment
result: passed
Test Outcome: test_two_guard_lines_are_stepped_over SEG-OUT-546B278AE3E4
nodeid: tests/unit/test_content_extractor.py::test_two_guard_lines_are_stepped_over
result: passed

tests/unit/test_drift.py

Test Outcome: test_a_broken_dependency_is_not_active_and_unsettles_the_edge_above SEG-OUT-AF7286925D2D
nodeid: tests/unit/test_drift.py::test_a_broken_dependency_is_not_active_and_unsettles_the_edge_above
result: passed
Test Outcome: test_a_current_edge_the_case_never_saw_is_pending SEG-OUT-4BED602591C0
nodeid: tests/unit/test_drift.py::test_a_current_edge_the_case_never_saw_is_pending
result: passed
Test Outcome: test_a_matched_recorded_edge_is_not_vanished SEG-OUT-9787B4C146DD
nodeid: tests/unit/test_drift.py::test_a_matched_recorded_edge_is_not_vanished
result: passed
Test Outcome: test_a_moved_hash_compares_as_differing SEG-OUT-3F5E2A1E97D9
nodeid: tests/unit/test_drift.py::test_a_moved_hash_compares_as_differing
result: passed
Test Outcome: test_a_name_only_the_event_carried_compares_as_recorded_only SEG-OUT-EBCCC8C80090
nodeid: tests/unit/test_drift.py::test_a_name_only_the_event_carried_compares_as_recorded_only
result: passed
Test Outcome: test_a_name_the_event_never_carried_compares_as_current_only SEG-OUT-F55A0E3F035C
nodeid: tests/unit/test_drift.py::test_a_name_the_event_never_carried_compares_as_current_only
result: passed
Test Outcome: test_a_never_affirmed_dangling_edge_is_broken_not_pending SEG-OUT-04464A41974B
nodeid: tests/unit/test_drift.py::test_a_never_affirmed_dangling_edge_is_broken_not_pending
result: passed
Test Outcome: test_a_pending_dependency_is_not_active_and_unsettles_the_edge_above SEG-OUT-38CAAFEE60D7
nodeid: tests/unit/test_drift.py::test_a_pending_dependency_is_not_active_and_unsettles_the_edge_above
result: passed
Test Outcome: test_a_recorded_but_never_affirmed_edge_is_pending SEG-OUT-EB34C6F05000
nodeid: tests/unit/test_drift.py::test_a_recorded_but_never_affirmed_edge_is_pending
result: passed
Test Outcome: test_a_recorded_edge_absent_from_current_is_named_not_stated SEG-OUT-C2C20D8B5C9B
nodeid: tests/unit/test_drift.py::test_a_recorded_edge_absent_from_current_is_named_not_stated
result: passed
Test Outcome: test_a_strong_cycle_is_refused_loudly SEG-OUT-51C981028CA7
nodeid: tests/unit/test_drift.py::test_a_strong_cycle_is_refused_loudly
result: passed
Test Outcome: test_active_when_content_matches_and_every_dependency_is_active SEG-OUT-83EB53DF5575
nodeid: tests/unit/test_drift.py::test_active_when_content_matches_and_every_dependency_is_active
result: passed
Test Outcome: test_an_affirmed_edge_whose_source_vanished_is_broken SEG-OUT-5D0C93D5CD27
nodeid: tests/unit/test_drift.py::test_an_affirmed_edge_whose_source_vanished_is_broken
result: passed
Test Outcome: test_an_affirmed_edge_whose_target_vanished_is_broken SEG-OUT-C997C432664D
nodeid: tests/unit/test_drift.py::test_an_affirmed_edge_whose_target_vanished_is_broken
result: passed
Test Outcome: test_an_evidence_edge_to_an_absent_node_is_broken_too SEG-OUT-30B5C3EA82F8
nodeid: tests/unit/test_drift.py::test_an_evidence_edge_to_an_absent_node_is_broken_too
result: passed
Test Outcome: test_an_unmoved_hash_compares_as_matching SEG-OUT-2DC7C10B75EF
nodeid: tests/unit/test_drift.py::test_an_unmoved_hash_compares_as_matching
result: passed
Test Outcome: test_both_endpoints_moving_is_reported_independently SEG-OUT-2B60A02C7904
nodeid: tests/unit/test_drift.py::test_both_endpoints_moving_is_reported_independently
result: passed
Test Outcome: test_comparing_against_the_wrong_events_edge_is_refused SEG-OUT-0F8C5CBE5125
nodeid: tests/unit/test_drift.py::test_comparing_against_the_wrong_events_edge_is_refused
result: passed
Test Outcome: test_dependencies_attach_at_the_source_endpoint_not_at_siblings SEG-OUT-AE940C4F5E66
nodeid: tests/unit/test_drift.py::test_dependencies_attach_at_the_source_endpoint_not_at_siblings
result: passed
Test Outcome: test_derivation_leaves_both_input_streams_unchanged SEG-OUT-7BFB224ACF14
nodeid: tests/unit/test_drift.py::test_derivation_leaves_both_input_streams_unchanged
result: passed
Test Outcome: test_directly_outdated_when_own_content_differs_and_dependencies_hold SEG-OUT-5D18AE89F49A
nodeid: tests/unit/test_drift.py::test_directly_outdated_when_own_content_differs_and_dependencies_hold
result: passed
Test Outcome: test_doubly_outdated_when_both_axes_fail_at_once SEG-OUT-189F45F7B093
nodeid: tests/unit/test_drift.py::test_doubly_outdated_when_both_axes_fail_at_once
result: passed
Test Outcome: test_duplicate_recorded_edges_are_refused SEG-OUT-BBA5D2595971
nodeid: tests/unit/test_drift.py::test_duplicate_recorded_edges_are_refused
result: passed
Test Outcome: test_each_input_stream_is_asked_for_at_most_once SEG-OUT-1FA41815DEC9
nodeid: tests/unit/test_drift.py::test_each_input_stream_is_asked_for_at_most_once
result: passed
Test Outcome: test_no_dependencies_ground_the_recursion_as_vacuously_active SEG-OUT-72A2FF075A32
nodeid: tests/unit/test_drift.py::test_no_dependencies_ground_the_recursion_as_vacuously_active
result: passed
Test Outcome: test_satisfaction_over_the_derived_graph_sees_the_suspicion SEG-OUT-51B7C1DE1973
nodeid: tests/unit/test_drift.py::test_satisfaction_over_the_derived_graph_sees_the_suspicion
result: passed
Test Outcome: test_store_backed_round_trip_derives_drift_and_leaves_the_case_unchanged SEG-OUT-57A7163AC745
nodeid: tests/unit/test_drift.py::test_store_backed_round_trip_derives_drift_and_leaves_the_case_unchanged
result: passed
Test Outcome: test_suspicion_clears_by_recomputation_once_the_change_site_is_reaffirmed SEG-OUT-AB3AAE9C45F9
nodeid: tests/unit/test_drift.py::test_suspicion_clears_by_recomputation_once_the_change_site_is_reaffirmed
result: passed
Test Outcome: test_suspicion_climbs_a_chain_of_strong_edges SEG-OUT-99E2AC7FD595
nodeid: tests/unit/test_drift.py::test_suspicion_climbs_a_chain_of_strong_edges
result: passed
Test Outcome: test_suspicion_stops_at_the_evidence_boundary SEG-OUT-0A8EA5750B9F
nodeid: tests/unit/test_drift.py::test_suspicion_stops_at_the_evidence_boundary
result: passed
Test Outcome: test_the_derivation_is_a_record_source_carrying_derived_states SEG-OUT-021BDA671771
nodeid: tests/unit/test_drift.py::test_the_derivation_is_a_record_source_carrying_derived_states
result: passed
Test Outcome: test_transitively_suspect_when_only_a_dependency_moved SEG-OUT-426C41C69018
nodeid: tests/unit/test_drift.py::test_transitively_suspect_when_only_a_dependency_moved
result: passed
Test Outcome: test_truth_table_state_maps_the_two_axes[False-False-doublyOutdated] SEG-OUT-F0ED3F6F6B49
nodeid: tests/unit/test_drift.py::test_truth_table_state_maps_the_two_axes[False-False-doublyOutdated]
result: passed
Test Outcome: test_truth_table_state_maps_the_two_axes[False-True-directlyOutdated] SEG-OUT-53CF4C65A76B
nodeid: tests/unit/test_drift.py::test_truth_table_state_maps_the_two_axes[False-True-directlyOutdated]
result: passed
Test Outcome: test_truth_table_state_maps_the_two_axes[True-False-transitivelySuspect] SEG-OUT-3760385BFC90
nodeid: tests/unit/test_drift.py::test_truth_table_state_maps_the_two_axes[True-False-transitivelySuspect]
result: passed
Test Outcome: test_truth_table_state_maps_the_two_axes[True-True-active] SEG-OUT-A0559917E740
nodeid: tests/unit/test_drift.py::test_truth_table_state_maps_the_two_axes[True-True-active]
result: passed
Test Outcome: test_what_a_current_edge_claims_about_itself_is_ignored SEG-OUT-F35D6FE806F6
nodeid: tests/unit/test_drift.py::test_what_a_current_edge_claims_about_itself_is_ignored
result: passed

tests/unit/test_gates.py

Test Outcome: test_a_diagnostic_allows_an_empty_detail SEG-OUT-9D4E67816E2B
nodeid: tests/unit/test_gates.py::test_a_diagnostic_allows_an_empty_detail
result: passed
Test Outcome: test_a_discarded_outcome_that_opens_no_gap_is_info_only SEG-OUT-9523DE338423
nodeid: tests/unit/test_gates.py::test_a_discarded_outcome_that_opens_no_gap_is_info_only
result: passed
Test Outcome: test_a_failing_outcome_excused_by_a_valid_waiver_is_informational_only SEG-OUT-B39E60637F9B
nodeid: tests/unit/test_gates.py::test_a_failing_outcome_excused_by_a_valid_waiver_is_informational_only
result: passed
Test Outcome: test_a_failing_outcome_excused_by_an_expired_waiver_still_blocks SEG-OUT-9EA7CCFA1017
nodeid: tests/unit/test_gates.py::test_a_failing_outcome_excused_by_an_expired_waiver_still_blocks
result: passed
Test Outcome: test_a_failing_outcome_with_a_dangling_excusal_still_blocks SEG-OUT-DF1AB68C940E
nodeid: tests/unit/test_gates.py::test_a_failing_outcome_with_a_dangling_excusal_still_blocks
result: passed
Test Outcome: test_a_failing_outcome_with_no_excusing_waiver_is_a_blocking_warning SEG-OUT-65DBA16E29A8
nodeid: tests/unit/test_gates.py::test_a_failing_outcome_with_no_excusing_waiver_is_a_blocking_warning
result: passed
Test Outcome: test_a_fresh_outcome_is_not_reported_stale SEG-OUT-44D285E9F50C
nodeid: tests/unit/test_gates.py::test_a_fresh_outcome_is_not_reported_stale
result: passed
Test Outcome: test_a_fresh_sibling_outcome_keeps_a_specification_covered_despite_a_stale_outcome SEG-OUT-826205D09B13
nodeid: tests/unit/test_gates.py::test_a_fresh_sibling_outcome_keeps_a_specification_covered_despite_a_stale_outcome
result: passed
Test Outcome: test_a_passing_outcome_is_never_a_waiver_finding_even_with_an_excusal_edge SEG-OUT-D89644B7C7CB
nodeid: tests/unit/test_gates.py::test_a_passing_outcome_is_never_a_waiver_finding_even_with_an_excusal_edge
result: passed
Test Outcome: test_a_report_with_only_info_findings_is_not_blocked SEG-OUT-DEED2DF33AA3
nodeid: tests/unit/test_gates.py::test_a_report_with_only_info_findings_is_not_blocked
result: passed
Test Outcome: test_a_skipped_outcome_does_not_hide_a_failing_one SEG-OUT-3C12F0E361FC
nodeid: tests/unit/test_gates.py::test_a_skipped_outcome_does_not_hide_a_failing_one
result: passed
Test Outcome: test_a_skipped_outcome_without_a_witness_is_listed_as_skipped_and_as_discarded SEG-OUT-4CF2E2028837
nodeid: tests/unit/test_gates.py::test_a_skipped_outcome_without_a_witness_is_listed_as_skipped_and_as_discarded
result: passed
Test Outcome: test_a_stale_failing_outcome_is_never_also_reported_unwaived_or_excused SEG-OUT-7E5C1F69B6DA
nodeid: tests/unit/test_gates.py::test_a_stale_failing_outcome_is_never_also_reported_unwaived_or_excused
result: passed
Test Outcome: test_a_stale_only_specification_is_a_coverage_gap SEG-OUT-5AF59A0DBC4B
nodeid: tests/unit/test_gates.py::test_a_stale_only_specification_is_a_coverage_gap
result: passed
Test Outcome: test_a_stale_outcome_is_never_also_reported_discarded SEG-OUT-6CE7199738C9
nodeid: tests/unit/test_gates.py::test_a_stale_outcome_is_never_also_reported_discarded
result: passed
Test Outcome: test_a_stale_outcome_is_reported_as_an_info_finding SEG-OUT-5CB08962F46A
nodeid: tests/unit/test_gates.py::test_a_stale_outcome_is_reported_as_an_info_finding
result: passed
Test Outcome: test_a_stale_skipped_only_specification_is_a_gap_with_one_stale_finding SEG-OUT-117E41F16BD9
nodeid: tests/unit/test_gates.py::test_a_stale_skipped_only_specification_is_a_gap_with_one_stale_finding
result: passed
Test Outcome: test_an_entirely_empty_graph_is_blocked SEG-OUT-6689E1888B5B
nodeid: tests/unit/test_gates.py::test_an_entirely_empty_graph_is_blocked
result: passed
Test Outcome: test_any_warning_finding_blocks[coverage-gap] SEG-OUT-FE0C0C3780F2
nodeid: tests/unit/test_gates.py::test_any_warning_finding_blocks[coverage-gap]
result: passed
Test Outcome: test_any_warning_finding_blocks[empty-design-set] SEG-OUT-6394730CF0A6
nodeid: tests/unit/test_gates.py::test_any_warning_finding_blocks[empty-design-set]
result: passed
Test Outcome: test_any_warning_finding_blocks[unready-edge] SEG-OUT-8FBE99AD41BF
nodeid: tests/unit/test_gates.py::test_any_warning_finding_blocks[unready-edge]
result: passed
Test Outcome: test_any_warning_finding_blocks[unwaived-outcome] SEG-OUT-7EF8492FFC44
nodeid: tests/unit/test_gates.py::test_any_warning_finding_blocks[unwaived-outcome]
result: passed
Test Outcome: test_any_warning_finding_blocks_the_stale_outcome_included SEG-OUT-CA241B14AE71
nodeid: tests/unit/test_gates.py::test_any_warning_finding_blocks_the_stale_outcome_included
result: passed
Test Outcome: test_current_revision_is_required_and_keyword_only SEG-OUT-A082228B7D40
nodeid: tests/unit/test_gates.py::test_current_revision_is_required_and_keyword_only
result: passed
Test Outcome: test_diagnostic_refuses_an_empty_condition SEG-OUT-A31F8760B563
nodeid: tests/unit/test_gates.py::test_diagnostic_refuses_an_empty_condition
result: passed
Test Outcome: test_diagnostic_refuses_an_empty_subject SEG-OUT-2456AA8645E7
nodeid: tests/unit/test_gates.py::test_diagnostic_refuses_an_empty_subject
result: passed
Test Outcome: test_diagnostics_and_blocked_never_disagree SEG-OUT-0FBF0442787D
nodeid: tests/unit/test_gates.py::test_diagnostics_and_blocked_never_disagree
result: passed
Test Outcome: test_evaluation_date_is_not_inert SEG-OUT-C3BB324D0D14
nodeid: tests/unit/test_gates.py::test_evaluation_date_is_not_inert
result: passed
Test Outcome: test_evaluation_is_pure_and_repeatable SEG-OUT-F3E311A28DD1
nodeid: tests/unit/test_gates.py::test_evaluation_is_pure_and_repeatable
result: passed
Test Outcome: test_every_diagnostics_condition_is_a_member_of_the_closed_vocabulary SEG-OUT-80B79B28C948
nodeid: tests/unit/test_gates.py::test_every_diagnostics_condition_is_a_member_of_the_closed_vocabulary
result: passed
Test Outcome: test_fully_covered_fully_affirmed_scope_is_ready SEG-OUT-7467AB7FB84D
nodeid: tests/unit/test_gates.py::test_fully_covered_fully_affirmed_scope_is_ready
result: passed
Test Outcome: test_gap_lands_at_the_leaf_never_at_an_unsatisfied_ancestor SEG-OUT-8C8FE1DCB88D
nodeid: tests/unit/test_gates.py::test_gap_lands_at_the_leaf_never_at_an_unsatisfied_ancestor
result: passed
Test Outcome: test_no_requirement_nodes_means_the_design_set_is_empty_and_blocked SEG-OUT-A9BCF29B9C05
nodeid: tests/unit/test_gates.py::test_no_requirement_nodes_means_the_design_set_is_empty_and_blocked
result: passed
Test Outcome: test_non_leaf_gap_from_its_own_edge_is_not_shielded_by_satisfied_children SEG-OUT-19788B9C487D
nodeid: tests/unit/test_gates.py::test_non_leaf_gap_from_its_own_edge_is_not_shielded_by_satisfied_children
result: passed
Test Outcome: test_operators_path_from_bootstrap_blocked_to_ready SEG-OUT-FAE9FE20960D
nodeid: tests/unit/test_gates.py::test_operators_path_from_bootstrap_blocked_to_ready
result: passed
Test Outcome: test_operators_path_from_unwaived_failure_to_excused_via_waiver SEG-OUT-3CDEE425C9F6
nodeid: tests/unit/test_gates.py::test_operators_path_from_unwaived_failure_to_excused_via_waiver
result: passed
Test Outcome: test_orphan_requirement_is_its_own_gap SEG-OUT-796B1159F9FA
nodeid: tests/unit/test_gates.py::test_orphan_requirement_is_its_own_gap
result: passed
Test Outcome: test_severity_blocking_table[error-True-True] SEG-OUT-D66F3EB215A0
nodeid: tests/unit/test_gates.py::test_severity_blocking_table[error-True-True]
result: passed
Test Outcome: test_severity_blocking_table[info-False-False] SEG-OUT-DE33898C1794
nodeid: tests/unit/test_gates.py::test_severity_blocking_table[info-False-False]
result: passed
Test Outcome: test_severity_blocking_table[warning-False-True] SEG-OUT-1C357722899A
nodeid: tests/unit/test_gates.py::test_severity_blocking_table[warning-False-True]
result: passed
Test Outcome: test_skipped_findings_are_listed_in_the_order_of_their_subjects SEG-OUT-4B5C0B2D5CC8
nodeid: tests/unit/test_gates.py::test_skipped_findings_are_listed_in_the_order_of_their_subjects
result: passed
Test Outcome: test_stale_exclusion_does_not_affect_the_unready_edge_worklist SEG-OUT-9E434A5FC2CC
nodeid: tests/unit/test_gates.py::test_stale_exclusion_does_not_affect_the_unready_edge_worklist
result: passed
Test Outcome: test_the_skipped_finding_carries_no_detail SEG-OUT-F120053E94D9
nodeid: tests/unit/test_gates.py::test_the_skipped_finding_carries_no_detail
result: passed
Test Outcome: test_the_unready_edge_condition_carries_no_interpolated_state_the_detail_field_does SEG-OUT-F5730AF6075D
nodeid: tests/unit/test_gates.py::test_the_unready_edge_condition_carries_no_interpolated_state_the_detail_field_does
result: passed
Test Outcome: test_worklist_is_sorted_by_kind_then_endpoints SEG-OUT-E18142C842CD
nodeid: tests/unit/test_gates.py::test_worklist_is_sorted_by_kind_then_endpoints
result: passed
Test Outcome: test_worklist_lists_every_non_active_state_and_omits_active_and_evidence SEG-OUT-269826A33D30
nodeid: tests/unit/test_gates.py::test_worklist_lists_every_non_active_state_and_omits_active_and_evidence
result: passed

tests/unit/test_graph.py

Test Outcome: test_a_built_graph_holds_its_nodes_by_local_identifier SEG-OUT-D4A1E16E420B
nodeid: tests/unit/test_graph.py::test_a_built_graph_holds_its_nodes_by_local_identifier
result: passed
Test Outcome: test_a_claimed_state_without_an_affirmed_hash_is_normalized_to_pending SEG-OUT-3EF054DC21B0
nodeid: tests/unit/test_graph.py::test_a_claimed_state_without_an_affirmed_hash_is_normalized_to_pending
result: passed
Test Outcome: test_a_cycle_deep_in_a_long_chain_is_still_reported SEG-OUT-97B6D0B046A0
nodeid: tests/unit/test_graph.py::test_a_cycle_deep_in_a_long_chain_is_still_reported
result: passed
Test Outcome: test_a_dangling_endpoint_still_indexes SEG-OUT-72440466377B
nodeid: tests/unit/test_graph.py::test_a_dangling_endpoint_still_indexes
result: passed
Test Outcome: test_a_deep_refines_chain_does_not_exhaust_the_stack SEG-OUT-D51F9EC12D13
nodeid: tests/unit/test_graph.py::test_a_deep_refines_chain_does_not_exhaust_the_stack
result: passed
Test Outcome: test_a_diamond_in_the_refines_relation_is_not_a_cycle SEG-OUT-10C645DFE5F1
nodeid: tests/unit/test_graph.py::test_a_diamond_in_the_refines_relation_is_not_a_cycle
result: passed
Test Outcome: test_a_duplicate_local_identifier_is_an_error SEG-OUT-525496843C1E
nodeid: tests/unit/test_graph.py::test_a_duplicate_local_identifier_is_an_error
result: passed
Test Outcome: test_a_node_carrying_a_content_hash_its_kind_does_not_declare_is_rejected SEG-OUT-3D7C6EC2492D
nodeid: tests/unit/test_graph.py::test_a_node_carrying_a_content_hash_its_kind_does_not_declare_is_rejected
result: passed
Test Outcome: test_a_node_missing_a_content_hash_its_kind_declares_is_rejected SEG-OUT-187B341C3712
nodeid: tests/unit/test_graph.py::test_a_node_missing_a_content_hash_its_kind_declares_is_rejected
result: passed
Test Outcome: test_a_node_of_an_undeclared_kind_is_rejected SEG-OUT-B52FDD63FF08
nodeid: tests/unit/test_graph.py::test_a_node_of_an_undeclared_kind_is_rejected
result: passed
Test Outcome: test_a_node_with_no_edges_is_kept SEG-OUT-99F55824AA99
nodeid: tests/unit/test_graph.py::test_a_node_with_no_edges_is_kept
result: passed
Test Outcome: test_a_recorded_state_is_carried_rather_than_recomputed SEG-OUT-0C108EB08D22
nodeid: tests/unit/test_graph.py::test_a_recorded_state_is_carried_rather_than_recomputed
result: passed
Test Outcome: test_a_refines_cycle_is_an_error SEG-OUT-8C0840554CF6
nodeid: tests/unit/test_graph.py::test_a_refines_cycle_is_an_error
result: passed
Test Outcome: test_a_refines_self_loop_is_an_error SEG-OUT-382198351A93
nodeid: tests/unit/test_graph.py::test_a_refines_self_loop_is_an_error
result: passed
Test Outcome: test_adjacency_can_be_narrowed_to_one_kind SEG-OUT-38FB825A2A9A
nodeid: tests/unit/test_graph.py::test_adjacency_can_be_narrowed_to_one_kind
result: passed
Test Outcome: test_adjacency_is_indexed_in_both_directions SEG-OUT-DAF3DC4B22D0
nodeid: tests/unit/test_graph.py::test_adjacency_is_indexed_in_both_directions
result: passed
Test Outcome: test_an_edge_of_an_undeclared_kind_is_rejected SEG-OUT-39AE704FC43A
nodeid: tests/unit/test_graph.py::test_an_edge_of_an_undeclared_kind_is_rejected
result: passed
Test Outcome: test_an_edge_to_an_absent_node_is_built_not_rejected SEG-OUT-46C159BA4786
nodeid: tests/unit/test_graph.py::test_an_edge_to_an_absent_node_is_built_not_rejected
result: passed
Test Outcome: test_an_edge_with_no_affirmed_hash_is_reported_as_pending SEG-OUT-85F8ED9DFB68
nodeid: tests/unit/test_graph.py::test_an_edge_with_no_affirmed_hash_is_reported_as_pending
result: passed
Test Outcome: test_an_empty_source_builds_an_empty_graph SEG-OUT-C46FFABE4893
nodeid: tests/unit/test_graph.py::test_an_empty_source_builds_an_empty_graph
result: passed
Test Outcome: test_an_unknown_node_is_reported_rather_than_returning_nothing SEG-OUT-2E4CAA424E6E
nodeid: tests/unit/test_graph.py::test_an_unknown_node_is_reported_rather_than_returning_nothing
result: passed
Test Outcome: test_building_twice_from_equal_sources_gives_equal_graphs SEG-OUT-A1099C133CC8
nodeid: tests/unit/test_graph.py::test_building_twice_from_equal_sources_gives_equal_graphs
result: passed
Test Outcome: test_cycles_in_other_edge_kinds_are_not_refines_cycles SEG-OUT-DE0FDAA3EB7C
nodeid: tests/unit/test_graph.py::test_cycles_in_other_edge_kinds_are_not_refines_cycles
result: passed
Test Outcome: test_rejection_stops_the_build_rather_than_skipping_the_record SEG-OUT-DBACE2B58C67
nodeid: tests/unit/test_graph.py::test_rejection_stops_the_build_rather_than_skipping_the_record
result: passed
Test Outcome: test_the_builder_consumes_a_source_that_can_only_be_walked_once SEG-OUT-43FCBF57CCAF
nodeid: tests/unit/test_graph.py::test_the_builder_consumes_a_source_that_can_only_be_walked_once
result: passed
Test Outcome: test_the_built_graph_does_not_expose_mutable_internals SEG-OUT-D90B6670197C
nodeid: tests/unit/test_graph.py::test_the_built_graph_does_not_expose_mutable_internals
result: passed
Test Outcome: test_the_cycle_error_names_the_cycle SEG-OUT-865283E89663
nodeid: tests/unit/test_graph.py::test_the_cycle_error_names_the_cycle
result: passed
Test Outcome: test_two_kinds_may_not_share_a_local_identifier SEG-OUT-58809176A0F8
nodeid: tests/unit/test_graph.py::test_two_kinds_may_not_share_a_local_identifier
result: passed

tests/unit/test_hashing.py

Test Outcome: test_a_content_hash_is_exactly_thirty_two_bytes SEG-OUT-628D8B36B4C0
nodeid: tests/unit/test_hashing.py::test_a_content_hash_is_exactly_thirty_two_bytes
result: passed
Test Outcome: test_a_counted_sequence_distinguishes_arity_from_content SEG-OUT-0B6437654668
nodeid: tests/unit/test_hashing.py::test_a_counted_sequence_distinguishes_arity_from_content
result: passed
Test Outcome: test_a_hex_digest_is_rejected SEG-OUT-22ECCD3DFE7D
nodeid: tests/unit/test_hashing.py::test_a_hex_digest_is_rejected
result: passed
Test Outcome: test_a_raw_digest_passes_through_unchanged SEG-OUT-0071C11FFFFA
nodeid: tests/unit/test_hashing.py::test_a_raw_digest_passes_through_unchanged
result: passed
Test Outcome: test_content_hash_is_the_bare_sha256_of_the_form SEG-OUT-8787A73B8B96
nodeid: tests/unit/test_hashing.py::test_content_hash_is_the_bare_sha256_of_the_form
result: passed
Test Outcome: test_counted_sequence_accepts_an_exhaustible_iterable SEG-OUT-3766667190CA
nodeid: tests/unit/test_hashing.py::test_counted_sequence_accepts_an_exhaustible_iterable
result: passed
Test Outcome: test_counted_sequence_matches_the_notation SEG-OUT-5DA391C77435
nodeid: tests/unit/test_hashing.py::test_counted_sequence_matches_the_notation
result: passed
Test Outcome: test_digest_of_hashes_an_assembled_preimage SEG-OUT-C3CC91C25010
nodeid: tests/unit/test_hashing.py::test_digest_of_hashes_an_assembled_preimage
result: passed
Test Outcome: test_framing_distinguishes_splits_that_concatenation_merges SEG-OUT-37086191B439
nodeid: tests/unit/test_hashing.py::test_framing_distinguishes_splits_that_concatenation_merges
result: passed
Test Outcome: test_length_prefix_matches_the_notation SEG-OUT-CD812E979B7F
nodeid: tests/unit/test_hashing.py::test_length_prefix_matches_the_notation
result: passed
Test Outcome: test_the_content_hash_of_an_empty_form_is_defined SEG-OUT-67E65939E949
nodeid: tests/unit/test_hashing.py::test_the_content_hash_of_an_empty_form_is_defined
result: passed
Test Outcome: test_the_rejection_names_the_offending_input SEG-OUT-711E681591D9
nodeid: tests/unit/test_hashing.py::test_the_rejection_names_the_offending_input
result: passed
Test Outcome: test_utf8_encodes_without_normalizing SEG-OUT-E5420B0724E2
nodeid: tests/unit/test_hashing.py::test_utf8_encodes_without_normalizing
result: passed

tests/unit/test_import_layering.py

Test Outcome: test_every_component_declares_an_allow_list SEG-OUT-398FD079A9E3
nodeid: tests/unit/test_import_layering.py::test_every_component_declares_an_allow_list
result: passed
Test Outcome: test_identity_never_reaches_the_commitment_layer SEG-OUT-88BC6B2BFF33
nodeid: tests/unit/test_import_layering.py::test_identity_never_reaches_the_commitment_layer
result: passed
Test Outcome: test_imports_respect_the_declared_layering SEG-OUT-BFAD200D30A6
nodeid: tests/unit/test_import_layering.py::test_imports_respect_the_declared_layering
result: passed
Test Outcome: test_nothing_imports_the_cli SEG-OUT-F0EB17FE92BD
nodeid: tests/unit/test_import_layering.py::test_nothing_imports_the_cli
result: passed
Test Outcome: test_only_the_hashing_module_imports_hashlib SEG-OUT-5A277199909C
nodeid: tests/unit/test_import_layering.py::test_only_the_hashing_module_imports_hashlib
result: passed
Test Outcome: test_only_the_repository_module_imports_subprocess SEG-OUT-8CAAA9C25D91
nodeid: tests/unit/test_import_layering.py::test_only_the_repository_module_imports_subprocess
result: passed
Test Outcome: test_record_sources_and_persistence_stay_below_the_graph SEG-OUT-A07C58FB1EF9
nodeid: tests/unit/test_import_layering.py::test_record_sources_and_persistence_stay_below_the_graph
result: passed
Test Outcome: test_the_affirmation_store_never_imports_proof_or_affirmation SEG-OUT-4A4C1CF9A8AE
nodeid: tests/unit/test_import_layering.py::test_the_affirmation_store_never_imports_proof_or_affirmation
result: passed
Test Outcome: test_the_commitment_layer_is_a_leaf SEG-OUT-9B0E2F9123D7
nodeid: tests/unit/test_import_layering.py::test_the_commitment_layer_is_a_leaf
result: passed
Test Outcome: test_the_tree_matches_the_declared_component_set SEG-OUT-FD911018D5B1
nodeid: tests/unit/test_import_layering.py::test_the_tree_matches_the_declared_component_set
result: passed

tests/unit/test_judgement.py

Test Outcome: test_a_configured_role_vocabulary_is_enforced SEG-OUT-842E585C60B4
nodeid: tests/unit/test_judgement.py::test_a_configured_role_vocabulary_is_enforced
result: passed
Test Outcome: test_a_dirty_anchor_refuses_a_discovered_revision SEG-OUT-54B5A6C86823
nodeid: tests/unit/test_judgement.py::test_a_dirty_anchor_refuses_a_discovered_revision
result: passed
Test Outcome: test_a_given_revision_overrides_discovery SEG-OUT-D75EF8F42160
nodeid: tests/unit/test_judgement.py::test_a_given_revision_overrides_discovery
result: passed
Test Outcome: test_a_revision_is_discovered_when_the_repository_is_mapped SEG-OUT-CC8507170A4D
nodeid: tests/unit/test_judgement.py::test_a_revision_is_discovered_when_the_repository_is_mapped
result: passed
Test Outcome: test_an_unmapped_repository_requires_an_explicit_revision SEG-OUT-AF485AC1A04E
nodeid: tests/unit/test_judgement.py::test_an_unmapped_repository_requires_an_explicit_revision
result: passed
Test Outcome: test_before_content_is_recovered_at_a_revision SEG-OUT-BA4EFD5B9F54
nodeid: tests/unit/test_judgement.py::test_before_content_is_recovered_at_a_revision
result: passed
Test Outcome: test_no_configured_vocabulary_accepts_every_role SEG-OUT-237D43B2AFA1
nodeid: tests/unit/test_judgement.py::test_no_configured_vocabulary_accepts_every_role
result: passed
Test Outcome: test_resolve_current_folds_a_missing_reader_export_into_a_judgement_error SEG-OUT-EC96BC142EAD
nodeid: tests/unit/test_judgement.py::test_resolve_current_folds_a_missing_reader_export_into_a_judgement_error
result: passed
Test Outcome: test_resolve_current_folds_an_unconfigured_repository_into_a_judgement_error SEG-OUT-039AC10283FF
nodeid: tests/unit/test_judgement.py::test_resolve_current_folds_an_unconfigured_repository_into_a_judgement_error
result: passed
Test Outcome: test_resolve_current_overrides_the_configured_producer SEG-OUT-5C20046E77F5
nodeid: tests/unit/test_judgement.py::test_resolve_current_overrides_the_configured_producer
result: passed
Test Outcome: test_resolve_current_requires_a_producer_when_neither_is_given SEG-OUT-87C678893EBB
nodeid: tests/unit/test_judgement.py::test_resolve_current_requires_a_producer_when_neither_is_given
result: passed
Test Outcome: test_resolve_current_with_a_directory_is_the_store_loader_despite_configured_readers SEG-OUT-2008C846E602
nodeid: tests/unit/test_judgement.py::test_resolve_current_with_a_directory_is_the_store_loader_despite_configured_readers
result: passed
Test Outcome: test_resolve_evaluation_date_parses_an_explicit_iso_date SEG-OUT-500354568AB4
nodeid: tests/unit/test_judgement.py::test_resolve_evaluation_date_parses_an_explicit_iso_date
result: passed
Test Outcome: test_resolve_timestamp_defaults_to_now_and_is_timezone_aware SEG-OUT-9AA077119653
nodeid: tests/unit/test_judgement.py::test_resolve_timestamp_defaults_to_now_and_is_timezone_aware
result: passed
Test Outcome: test_the_gates_revision_follows_the_same_rule_as_an_endpoints SEG-OUT-35578C3C0C5B
nodeid: tests/unit/test_judgement.py::test_the_gates_revision_follows_the_same_rule_as_an_endpoints
result: passed
Test Outcome: test_the_gates_revision_of_a_repository_git_cannot_read_is_a_judgement_error SEG-OUT-5E556D37207E
nodeid: tests/unit/test_judgement.py::test_the_gates_revision_of_a_repository_git_cannot_read_is_a_judgement_error
result: passed
Test Outcome: test_the_gates_revision_requires_an_explicit_value_when_unconfigured SEG-OUT-258F908912F3
nodeid: tests/unit/test_judgement.py::test_the_gates_revision_requires_an_explicit_value_when_unconfigured
result: passed

tests/unit/test_outcome.py

Test Outcome: test_a_fourth_value_is_refused SEG-OUT-C7A5C459D762
nodeid: tests/unit/test_outcome.py::test_a_fourth_value_is_refused
result: passed
Test Outcome: test_anchor_display_of_no_anchor_is_none SEG-OUT-2B3C2C769F0D
nodeid: tests/unit/test_outcome.py::test_anchor_display_of_no_anchor_is_none
result: passed
Test Outcome: test_anchor_display_truncates_unless_verbose SEG-OUT-77102CF509DC
nodeid: tests/unit/test_outcome.py::test_anchor_display_truncates_unless_verbose
result: passed
Test Outcome: test_counts_display_joins_name_and_count_pairs SEG-OUT-F6A798BCD705
nodeid: tests/unit/test_outcome.py::test_counts_display_joins_name_and_count_pairs
result: passed
Test Outcome: test_counts_display_of_no_counts_says_none SEG-OUT-AF0520D41CC3
nodeid: tests/unit/test_outcome.py::test_counts_display_of_no_counts_says_none
result: passed
Test Outcome: test_exit_status_is_one_of_the_three_members SEG-OUT-9F8BEBA7125C
nodeid: tests/unit/test_outcome.py::test_exit_status_is_one_of_the_three_members
result: passed
Test Outcome: test_hash_display_truncates_unless_verbose SEG-OUT-8C473AA65B93
nodeid: tests/unit/test_outcome.py::test_hash_display_truncates_unless_verbose
result: passed
Test Outcome: test_render_json_is_sorted_and_stable SEG-OUT-0E2C108F2732
nodeid: tests/unit/test_outcome.py::test_render_json_is_sorted_and_stable
result: passed
Test Outcome: test_render_refusal_as_json_structures_the_same_message SEG-OUT-AEE2A09F85B1
nodeid: tests/unit/test_outcome.py::test_render_refusal_as_json_structures_the_same_message
result: passed
Test Outcome: test_render_refusal_prints_the_librarys_message_verbatim SEG-OUT-7EF0B938F9A5
nodeid: tests/unit/test_outcome.py::test_render_refusal_prints_the_librarys_message_verbatim
result: passed

tests/unit/test_outcome_extractor.py

Test Outcome: test_a_bundle_anywhere_is_read_and_anchored_by_its_digest SEG-OUT-017251E3A42F
nodeid: tests/unit/test_outcome_extractor.py::test_a_bundle_anywhere_is_read_and_anchored_by_its_digest
result: passed
Test Outcome: test_a_bundle_digest_has_the_form_sha256_and_64_hex_digits SEG-OUT-6271B450AD01
nodeid: tests/unit/test_outcome_extractor.py::test_a_bundle_digest_has_the_form_sha256_and_64_hex_digits
result: passed
Test Outcome: test_a_bundle_path_with_a_backslash_is_refused SEG-OUT-074F16590D5D
nodeid: tests/unit/test_outcome_extractor.py::test_a_bundle_path_with_a_backslash_is_refused
result: passed
Test Outcome: test_a_bundle_that_is_not_a_directory_is_refused SEG-OUT-7E4E0E16F245
nodeid: tests/unit/test_outcome_extractor.py::test_a_bundle_that_is_not_a_directory_is_refused
result: passed
Test Outcome: test_a_dirty_implementation_checkout_is_refused_naming_the_first_line SEG-OUT-DD849EDB0534
nodeid: tests/unit/test_outcome_extractor.py::test_a_dirty_implementation_checkout_is_refused_naming_the_first_line
result: passed
Test Outcome: test_a_duplicate_suite_and_function_that_no_result_reaches_is_ignored SEG-OUT-59E7B64659E7
nodeid: tests/unit/test_outcome_extractor.py::test_a_duplicate_suite_and_function_that_no_result_reaches_is_ignored
result: passed
Test Outcome: test_a_link_in_a_bundle_is_refused SEG-OUT-3EC7ECC754D5
nodeid: tests/unit/test_outcome_extractor.py::test_a_link_in_a_bundle_is_refused
result: passed
Test Outcome: test_a_missing_dirty_flag_of_the_implementation_checkout_is_refused SEG-OUT-9C85CBCC1675
nodeid: tests/unit/test_outcome_extractor.py::test_a_missing_dirty_flag_of_the_implementation_checkout_is_refused
result: passed
Test Outcome: test_a_missing_revision_record_is_refused_naming_the_record SEG-OUT-D59E298CA84A
nodeid: tests/unit/test_outcome_extractor.py::test_a_missing_revision_record_is_refused_naming_the_record
result: passed
Test Outcome: test_a_name_with_a_slash_is_refused SEG-OUT-7E82E0041F6F
nodeid: tests/unit/test_outcome_extractor.py::test_a_name_with_a_slash_is_refused
result: passed
Test Outcome: test_a_non_ascii_identifier_is_written_as_utf_8_and_not_escaped SEG-OUT-8BA3E5D60730
nodeid: tests/unit/test_outcome_extractor.py::test_a_non_ascii_identifier_is_written_as_utf_8_and_not_escaped
result: passed
Test Outcome: test_a_revision_record_ending_in_a_carriage_return_and_line_feed_is_read SEG-OUT-65F2A5591CEB
nodeid: tests/unit/test_outcome_extractor.py::test_a_revision_record_ending_in_a_carriage_return_and_line_feed_is_read
result: passed
Test Outcome: test_a_revision_record_of_two_lines_is_refused SEG-OUT-39A3762AF8E1
nodeid: tests/unit/test_outcome_extractor.py::test_a_revision_record_of_two_lines_is_refused
result: passed
Test Outcome: test_a_revision_record_with_blanks_around_its_text_is_refused SEG-OUT-61132933AA38
nodeid: tests/unit/test_outcome_extractor.py::test_a_revision_record_with_blanks_around_its_text_is_refused
result: passed
Test Outcome: test_a_revision_record_with_no_text_is_refused[ \n] SEG-OUT-A141768F53AB
nodeid: tests/unit/test_outcome_extractor.py::test_a_revision_record_with_no_text_is_refused[ \n]
result: passed
Test Outcome: test_a_revision_record_with_no_text_is_refused[\n] SEG-OUT-B06D883F6B66
nodeid: tests/unit/test_outcome_extractor.py::test_a_revision_record_with_no_text_is_refused[\n]
result: passed
Test Outcome: test_a_revision_record_with_no_text_is_refused[] SEG-OUT-8C0C4D684CAB
nodeid: tests/unit/test_outcome_extractor.py::test_a_revision_record_with_no_text_is_refused[]
result: passed
Test Outcome: test_a_run_artifact_that_is_not_json_is_refused SEG-OUT-A7C396C38455
nodeid: tests/unit/test_outcome_extractor.py::test_a_run_artifact_that_is_not_json_is_refused
result: passed
Test Outcome: test_a_run_artifact_without_testsuites_is_refused SEG-OUT-283CC908719F
nodeid: tests/unit/test_outcome_extractor.py::test_a_run_artifact_without_testsuites_is_refused
result: passed
Test Outcome: test_a_scenario_with_no_results_supplies_nothing SEG-OUT-DB757371DCD0
nodeid: tests/unit/test_outcome_extractor.py::test_a_scenario_with_no_results_supplies_nothing
result: passed
Test Outcome: test_a_slash_in_the_platform_becomes_a_hyphen_in_the_identity SEG-OUT-48F376D12407
nodeid: tests/unit/test_outcome_extractor.py::test_a_slash_in_the_platform_becomes_a_hyphen_in_the_identity
result: passed
Test Outcome: test_a_status_outside_the_closed_set_is_refused_naming_the_result[3] SEG-OUT-F13F383F2811
nodeid: tests/unit/test_outcome_extractor.py::test_a_status_outside_the_closed_set_is_refused_naming_the_result[3]
result: passed
Test Outcome: test_a_status_outside_the_closed_set_is_refused_naming_the_result[None] SEG-OUT-5D96407FF83A
nodeid: tests/unit/test_outcome_extractor.py::test_a_status_outside_the_closed_set_is_refused_naming_the_result[None]
result: passed
Test Outcome: test_a_status_outside_the_closed_set_is_refused_naming_the_result[] SEG-OUT-3FE9416D2C29
nodeid: tests/unit/test_outcome_extractor.py::test_a_status_outside_the_closed_set_is_refused_naming_the_result[]
result: passed
Test Outcome: test_a_status_outside_the_closed_set_is_refused_naming_the_result[blocked] SEG-OUT-20520255A8E7
nodeid: tests/unit/test_outcome_extractor.py::test_a_status_outside_the_closed_set_is_refused_naming_the_result[blocked]
result: passed
Test Outcome: test_a_test_case_need_with_an_empty_test_function_is_refused SEG-OUT-48DFC94D3B82
nodeid: tests/unit/test_outcome_extractor.py::test_a_test_case_need_with_an_empty_test_function_is_refused
result: passed
Test Outcome: test_a_test_function_loses_only_one_leading_test_prefix SEG-OUT-2376AE37BF95
nodeid: tests/unit/test_outcome_extractor.py::test_a_test_function_loses_only_one_leading_test_prefix
result: passed
Test Outcome: test_a_witnesses_edge_runs_to_the_implementation_of_a_verified_requirement SEG-OUT-2B163118B543
nodeid: tests/unit/test_outcome_extractor.py::test_a_witnesses_edge_runs_to_the_implementation_of_a_verified_requirement
result: passed
Test Outcome: test_an_ambiguous_result_is_refused_naming_both_needs SEG-OUT-59384539656A
nodeid: tests/unit/test_outcome_extractor.py::test_an_ambiguous_result_is_refused_naming_both_needs
result: passed
Test Outcome: test_an_empty_directory_in_a_bundle_does_not_change_its_digest SEG-OUT-2CF74CFB9465
nodeid: tests/unit/test_outcome_extractor.py::test_an_empty_directory_in_a_bundle_does_not_change_its_digest
result: passed
Test Outcome: test_an_empty_name_record_is_refused SEG-OUT-8BC90C5C3C01
nodeid: tests/unit/test_outcome_extractor.py::test_an_empty_name_record_is_refused
result: passed
Test Outcome: test_an_export_with_a_build_timestamp_is_refused SEG-OUT-35E3EE3E75DF
nodeid: tests/unit/test_outcome_extractor.py::test_an_export_with_a_build_timestamp_is_refused
result: passed
Test Outcome: test_an_implementation_that_satisfies_two_verified_requirements_is_one_witness SEG-OUT-F907C3658FC3
nodeid: tests/unit/test_outcome_extractor.py::test_an_implementation_that_satisfies_two_verified_requirements_is_one_witness
result: passed
Test Outcome: test_an_unmapped_result_is_refused_naming_the_run_and_the_result SEG-OUT-5A044837BA8E
nodeid: tests/unit/test_outcome_extractor.py::test_an_unmapped_result_is_refused_naming_the_run_and_the_result
result: passed
Test Outcome: test_an_unusable_implementation_checkout_is_refused[..] SEG-OUT-D317352605C2
nodeid: tests/unit/test_outcome_extractor.py::test_an_unusable_implementation_checkout_is_refused[..]
result: passed
Test Outcome: test_an_unusable_implementation_checkout_is_refused[None] SEG-OUT-6DB2DDA8B5B3
nodeid: tests/unit/test_outcome_extractor.py::test_an_unusable_implementation_checkout_is_refused[None]
result: passed
Test Outcome: test_an_unusable_implementation_checkout_is_refused[] SEG-OUT-FFCD29A6EEF8
nodeid: tests/unit/test_outcome_extractor.py::test_an_unusable_implementation_checkout_is_refused[]
result: passed
Test Outcome: test_an_unusable_implementation_checkout_is_refused[a/b] SEG-OUT-2B412F26ED28
nodeid: tests/unit/test_outcome_extractor.py::test_an_unusable_implementation_checkout_is_refused[a/b]
result: passed
Test Outcome: test_each_outcome_names_the_digest_of_the_bundle_that_supplied_it SEG-OUT-DB882B62A416
nodeid: tests/unit/test_outcome_extractor.py::test_each_outcome_names_the_digest_of_the_bundle_that_supplied_it
result: passed
Test Outcome: test_every_edge_is_pending SEG-OUT-9EC36B0D03CB
nodeid: tests/unit/test_outcome_extractor.py::test_every_edge_is_pending
result: passed
Test Outcome: test_no_witnesses_edge_is_supplied_when_no_implementation_satisfies_a_verified_requirement SEG-OUT-4C1832A40E5E
nodeid: tests/unit/test_outcome_extractor.py::test_no_witnesses_edge_is_supplied_when_no_implementation_satisfies_a_verified_requirement
result: passed
Test Outcome: test_no_witnesses_edge_is_supplied_without_the_implementation_input SEG-OUT-E9646BAB1938
nodeid: tests/unit/test_outcome_extractor.py::test_no_witnesses_edge_is_supplied_without_the_implementation_input
result: passed
Test Outcome: test_one_identifier_maps_to_the_need_that_forms_it_in_each_nested_scenario SEG-OUT-9C6412F7F440
nodeid: tests/unit/test_outcome_extractor.py::test_one_identifier_maps_to_the_need_that_forms_it_in_each_nested_scenario
result: passed
Test Outcome: test_the_canonical_record_is_the_compact_sorted_json_of_three_members SEG-OUT-83376CB01B83
nodeid: tests/unit/test_outcome_extractor.py::test_the_canonical_record_is_the_compact_sorted_json_of_three_members
result: passed
Test Outcome: test_the_content_hash_of_a_known_record_is_its_sha256 SEG-OUT-7E9DBA557AB8
nodeid: tests/unit/test_outcome_extractor.py::test_the_content_hash_of_a_known_record_is_its_sha256
result: passed
Test Outcome: test_two_runs_supply_their_outcomes_in_order_each_with_its_own_revision SEG-OUT-E8276CB017A1
nodeid: tests/unit/test_outcome_extractor.py::test_two_runs_supply_their_outcomes_in_order_each_with_its_own_revision
result: passed
Test Outcome: test_two_runs_that_give_one_outcome_identity_are_refused_naming_both_runs SEG-OUT-69FA620EA4AF
nodeid: tests/unit/test_outcome_extractor.py::test_two_runs_that_give_one_outcome_identity_are_refused_naming_both_runs
result: passed

tests/unit/test_package.py

Test Outcome: test_version SEG-OUT-921EF9BA41FE
nodeid: tests/unit/test_package.py::test_version
result: passed

tests/unit/test_package_reading.py

Test Outcome: test_a_directory_that_holds_no_package_is_refused SEG-OUT-576081233E7D
nodeid: tests/unit/test_package_reading.py::test_a_directory_that_holds_no_package_is_refused
result: passed
Test Outcome: test_a_package_directory_reads_with_no_case SEG-OUT-A8BBB9F74D05
nodeid: tests/unit/test_package_reading.py::test_a_package_directory_reads_with_no_case
result: passed
Test Outcome: test_a_package_is_named_by_path_by_identifier_or_by_prefix SEG-OUT-E880D804A2E7
nodeid: tests/unit/test_package_reading.py::test_a_package_is_named_by_path_by_identifier_or_by_prefix
result: passed
Test Outcome: test_the_case_lists_the_packages_it_holds SEG-OUT-9CA4BB581EEA
nodeid: tests/unit/test_package_reading.py::test_the_case_lists_the_packages_it_holds
result: passed
Test Outcome: test_the_sealed_root_of_a_stored_package_is_the_generator_root SEG-OUT-23D2DD52EBAB
nodeid: tests/unit/test_package_reading.py::test_the_sealed_root_of_a_stored_package_is_the_generator_root
result: passed

tests/unit/test_proof_package.py

Test Outcome: test_a_blocked_scope_raises_generation_refused SEG-OUT-FEED9FEBA12A
nodeid: tests/unit/test_proof_package.py::test_a_blocked_scope_raises_generation_refused
result: passed
Test Outcome: test_a_coverage_report_sealed_before_the_skipped_field_existed_still_validates SEG-OUT-51DA3596E94F
nodeid: tests/unit/test_proof_package.py::test_a_coverage_report_sealed_before_the_skipped_field_existed_still_validates
result: passed
Test Outcome: test_a_package_holding_a_skipped_outcome_persists_and_reads_back SEG-OUT-5D5BDDA93F06
nodeid: tests/unit/test_proof_package.py::test_a_package_holding_a_skipped_outcome_persists_and_reads_back
result: passed
Test Outcome: test_a_ready_scope_assembles_all_four_documents SEG-OUT-6F1FCE561495
nodeid: tests/unit/test_proof_package.py::test_a_ready_scope_assembles_all_four_documents
result: passed
Test Outcome: test_a_ready_scope_with_informational_findings_is_not_refused SEG-OUT-2C21892098B1
nodeid: tests/unit/test_proof_package.py::test_a_ready_scope_with_informational_findings_is_not_refused
result: passed
Test Outcome: test_a_refused_scope_creates_no_case_directory SEG-OUT-8CB8E6D8F596
nodeid: tests/unit/test_proof_package.py::test_a_refused_scope_creates_no_case_directory
result: passed
Test Outcome: test_a_scope_error_is_never_a_generation_refused SEG-OUT-899F76BB0812
nodeid: tests/unit/test_proof_package.py::test_a_scope_error_is_never_a_generation_refused
result: passed
Test Outcome: test_a_skipped_outcome_is_named_in_the_coverage_report_document_and_does_not_refuse SEG-OUT-E6D2D342C851
nodeid: tests/unit/test_proof_package.py::test_a_skipped_outcome_is_named_in_the_coverage_report_document_and_does_not_refuse
result: passed
Test Outcome: test_a_skipped_outcome_stays_in_the_execution_coverage_record_without_a_waiver_entry SEG-OUT-F1A2B16F078D
nodeid: tests/unit/test_proof_package.py::test_a_skipped_outcome_stays_in_the_execution_coverage_record_without_a_waiver_entry
result: passed
Test Outcome: test_an_excused_failing_outcome_carries_its_waiver_id_and_a_copy_of_its_expiry SEG-OUT-D3AB9EE5B43B
nodeid: tests/unit/test_proof_package.py::test_an_excused_failing_outcome_carries_its_waiver_id_and_a_copy_of_its_expiry
result: passed
Test Outcome: test_an_outcome_confirming_two_in_scope_specifications_is_refused SEG-OUT-FF08DE40FCB3
nodeid: tests/unit/test_proof_package.py::test_an_outcome_confirming_two_in_scope_specifications_is_refused
result: passed
Test Outcome: test_an_unwaived_failing_outcome_is_refused SEG-OUT-E0C7F90CC49C
nodeid: tests/unit/test_proof_package.py::test_an_unwaived_failing_outcome_is_refused
result: passed
Test Outcome: test_assemble_and_persist_are_pure_and_repeatable SEG-OUT-0D8A71ECE3B1
nodeid: tests/unit/test_proof_package.py::test_assemble_and_persist_are_pure_and_repeatable
result: passed
Test Outcome: test_assembling_leaves_the_input_graph_unchanged SEG-OUT-B9635F49BFFB
nodeid: tests/unit/test_proof_package.py::test_assembling_leaves_the_input_graph_unchanged
result: passed
Test Outcome: test_canonical_metadata_differs_when_the_current_revision_differs SEG-OUT-0B1A627E4F46
nodeid: tests/unit/test_proof_package.py::test_canonical_metadata_differs_when_the_current_revision_differs
result: passed
Test Outcome: test_canonical_metadata_differs_when_the_requested_scope_differs SEG-OUT-373702EFE3B6
nodeid: tests/unit/test_proof_package.py::test_canonical_metadata_differs_when_the_requested_scope_differs
result: passed
Test Outcome: test_canonical_metadata_is_stable_for_the_same_inputs SEG-OUT-63B393B97CEC
nodeid: tests/unit/test_proof_package.py::test_canonical_metadata_is_stable_for_the_same_inputs
result: passed
Test Outcome: test_changing_a_design_node_changes_the_package_root SEG-OUT-C2CA295C2AD3
nodeid: tests/unit/test_proof_package.py::test_changing_a_design_node_changes_the_package_root
result: passed
Test Outcome: test_changing_an_in_scope_outcome_never_changes_the_package_root SEG-OUT-3B77B9A06CA8
nodeid: tests/unit/test_proof_package.py::test_changing_an_in_scope_outcome_never_changes_the_package_root
result: passed
Test Outcome: test_check_readiness_agrees_with_collect_scope_and_package_gate SEG-OUT-D9ED24A04E24
nodeid: tests/unit/test_proof_package.py::test_check_readiness_agrees_with_collect_scope_and_package_gate
result: passed
Test Outcome: test_each_blocking_condition_is_refused[coverage-gap] SEG-OUT-CFE2CB241B0C
nodeid: tests/unit/test_proof_package.py::test_each_blocking_condition_is_refused[coverage-gap]
result: passed
Test Outcome: test_each_blocking_condition_is_refused[empty-design-set] SEG-OUT-DBFC584EF94F
nodeid: tests/unit/test_proof_package.py::test_each_blocking_condition_is_refused[empty-design-set]
result: passed
Test Outcome: test_each_blocking_condition_is_refused[unready-edge] SEG-OUT-4B2500F4403E
nodeid: tests/unit/test_proof_package.py::test_each_blocking_condition_is_refused[unready-edge]
result: passed
Test Outcome: test_evidence_never_appears_in_the_design_consistency_proof SEG-OUT-1569AFA360E4
nodeid: tests/unit/test_proof_package.py::test_evidence_never_appears_in_the_design_consistency_proof
result: passed
Test Outcome: test_generation_leaves_the_stores_node_edge_and_event_streams_unchanged SEG-OUT-FD401716EE78
nodeid: tests/unit/test_proof_package.py::test_generation_leaves_the_stores_node_edge_and_event_streams_unchanged
result: passed
Test Outcome: test_generation_refused_is_not_a_scope_error_value_error_or_store_error SEG-OUT-789BF86850A8
nodeid: tests/unit/test_proof_package.py::test_generation_refused_is_not_a_scope_error_value_error_or_store_error
result: passed
Test Outcome: test_persisting_a_ready_package_writes_all_four_documents_under_its_snapshot SEG-OUT-2C631FE451CE
nodeid: tests/unit/test_proof_package.py::test_persisting_a_ready_package_writes_all_four_documents_under_its_snapshot
result: passed
Test Outcome: test_read_package_refuses_if_any_one_document_is_missing SEG-OUT-3459F717DCA8
nodeid: tests/unit/test_proof_package.py::test_read_package_refuses_if_any_one_document_is_missing
result: passed
Test Outcome: test_read_package_returns_all_four_documents_keyed_by_name SEG-OUT-828472E1F5B5
nodeid: tests/unit/test_proof_package.py::test_read_package_returns_all_four_documents_keyed_by_name
result: passed
Test Outcome: test_reading_a_document_kind_absent_from_the_cases_own_schemas_is_refused SEG-OUT-A76D2850CED3
nodeid: tests/unit/test_proof_package.py::test_reading_a_document_kind_absent_from_the_cases_own_schemas_is_refused
result: passed
Test Outcome: test_the_canonical_metadata_names_the_scope_and_the_revision_alone SEG-OUT-C2EF0B28852F
nodeid: tests/unit/test_proof_package.py::test_the_canonical_metadata_names_the_scope_and_the_revision_alone
result: passed
Test Outcome: test_the_coverage_report_document_matches_the_typed_report SEG-OUT-4A2AB6B6B3D2
nodeid: tests/unit/test_proof_package.py::test_the_coverage_report_document_matches_the_typed_report
result: passed
Test Outcome: test_the_design_consistency_proof_recomputes_its_own_root_from_its_own_contents_alone SEG-OUT-712A02DB4147
nodeid: tests/unit/test_proof_package.py::test_the_design_consistency_proof_recomputes_its_own_root_from_its_own_contents_alone
result: passed
Test Outcome: test_the_evidence_manifest_references_the_sibling_documents_by_relative_name SEG-OUT-2D812147CBED
nodeid: tests/unit/test_proof_package.py::test_the_evidence_manifest_references_the_sibling_documents_by_relative_name
result: passed
Test Outcome: test_the_evidence_manifest_states_requested_and_member_scope_and_totality SEG-OUT-84ECAEEC2AA3
nodeid: tests/unit/test_proof_package.py::test_the_evidence_manifest_states_requested_and_member_scope_and_totality
result: passed
Test Outcome: test_the_execution_coverage_record_carries_confirms_and_result_and_revision SEG-OUT-DCF2673C369F
nodeid: tests/unit/test_proof_package.py::test_the_execution_coverage_record_carries_confirms_and_result_and_revision
result: passed
Test Outcome: test_the_execution_coverage_record_excludes_stale_outcomes SEG-OUT-6590C39081D9
nodeid: tests/unit/test_proof_package.py::test_the_execution_coverage_record_excludes_stale_outcomes
result: passed
Test Outcome: test_the_manifest_lists_each_digest_once_and_sorted SEG-OUT-91AAF0C26860
nodeid: tests/unit/test_proof_package.py::test_the_manifest_lists_each_digest_once_and_sorted
result: passed
Test Outcome: test_the_manifest_lists_no_digest_when_no_bundle_is_given SEG-OUT-8513ED00B5AA
nodeid: tests/unit/test_proof_package.py::test_the_manifest_lists_no_digest_when_no_bundle_is_given
result: passed
Test Outcome: test_the_manifest_lists_the_digests_of_the_bundles_of_outcomes_in_scope SEG-OUT-8FB8E1D9A947
nodeid: tests/unit/test_proof_package.py::test_the_manifest_lists_the_digests_of_the_bundles_of_outcomes_in_scope
result: passed
Test Outcome: test_the_manifests_sibling_references_match_what_persist_actually_named SEG-OUT-DA2A69770944
nodeid: tests/unit/test_proof_package.py::test_the_manifests_sibling_references_match_what_persist_actually_named
result: passed
Test Outcome: test_the_snapshot_id_fingerprint_and_the_package_root_are_different_hashes SEG-OUT-B2A48605DF17
nodeid: tests/unit/test_proof_package.py::test_the_snapshot_id_fingerprint_and_the_package_root_are_different_hashes
result: passed
Test Outcome: test_two_packages_over_one_design_at_different_instants_carry_the_same_root SEG-OUT-C3CFD49F9731
nodeid: tests/unit/test_proof_package.py::test_two_packages_over_one_design_at_different_instants_carry_the_same_root
result: passed
Test Outcome: test_write_then_read_back_is_equal_for_every_document SEG-OUT-47CF30553E57
nodeid: tests/unit/test_proof_package.py::test_write_then_read_back_is_equal_for_every_document
result: passed

tests/unit/test_proof_scope.py

Test Outcome: test_a_naive_timestamp_is_rejected SEG-OUT-061C198121AC
nodeid: tests/unit/test_proof_scope.py::test_a_naive_timestamp_is_rejected
result: passed
Test Outcome: test_an_outcome_witnessing_an_out_of_scope_implementation_loses_that_edge SEG-OUT-B543181CB658
nodeid: tests/unit/test_proof_scope.py::test_an_outcome_witnessing_an_out_of_scope_implementation_loses_that_edge
result: passed
Test Outcome: test_collect_scope_leaves_the_input_graph_unchanged SEG-OUT-8EE5373A9B93
nodeid: tests/unit/test_proof_scope.py::test_collect_scope_leaves_the_input_graph_unchanged
result: passed
Test Outcome: test_package_gate_over_the_collected_subgraph_matches_an_independent_restriction SEG-OUT-1B3327F2946E
nodeid: tests/unit/test_proof_scope.py::test_package_gate_over_the_collected_subgraph_matches_an_independent_restriction
result: passed
Test Outcome: test_requesting_a_non_requirement_id_raises_scope_error SEG-OUT-5FBADC27A4BF
nodeid: tests/unit/test_proof_scope.py::test_requesting_a_non_requirement_id_raises_scope_error
result: passed
Test Outcome: test_requesting_an_absent_id_raises_scope_error SEG-OUT-201C69378BB3
nodeid: tests/unit/test_proof_scope.py::test_requesting_an_absent_id_raises_scope_error
result: passed
Test Outcome: test_scope_excludes_an_ancestor_and_its_other_children SEG-OUT-F90D50F68668
nodeid: tests/unit/test_proof_scope.py::test_scope_excludes_an_ancestor_and_its_other_children
result: passed
Test Outcome: test_scope_includes_a_confirming_outcome SEG-OUT-DEAF6A5158EB
nodeid: tests/unit/test_proof_scope.py::test_scope_includes_a_confirming_outcome
result: passed
Test Outcome: test_scope_includes_a_direct_refiner SEG-OUT-7A50B5692895
nodeid: tests/unit/test_proof_scope.py::test_scope_includes_a_direct_refiner
result: passed
Test Outcome: test_scope_includes_a_verifying_specification SEG-OUT-9C71129ED3F7
nodeid: tests/unit/test_proof_scope.py::test_scope_includes_a_verifying_specification
result: passed
Test Outcome: test_scope_includes_an_excusing_waiver SEG-OUT-5E8F92BDFA0B
nodeid: tests/unit/test_proof_scope.py::test_scope_includes_an_excusing_waiver
result: passed
Test Outcome: test_scope_includes_an_implementing_implementation SEG-OUT-440997185B09
nodeid: tests/unit/test_proof_scope.py::test_scope_includes_an_implementing_implementation
result: passed
Test Outcome: test_scope_includes_refiners_transitively SEG-OUT-05E0F1E65FC7
nodeid: tests/unit/test_proof_scope.py::test_scope_includes_refiners_transitively
result: passed
Test Outcome: test_scope_includes_the_requested_requirement SEG-OUT-25B468AB33DD
nodeid: tests/unit/test_proof_scope.py::test_scope_includes_the_requested_requirement
result: passed
Test Outcome: test_snapshot_identifier_changes_when_an_outcome_is_added SEG-OUT-93B41B8A5BDF
nodeid: tests/unit/test_proof_scope.py::test_snapshot_identifier_changes_when_an_outcome_is_added
result: passed
Test Outcome: test_snapshot_identifier_changes_when_the_timestamp_changes SEG-OUT-180455AA8C10
nodeid: tests/unit/test_proof_scope.py::test_snapshot_identifier_changes_when_the_timestamp_changes
result: passed
Test Outcome: test_snapshot_identifier_is_deterministic_for_the_same_scope_and_timestamp SEG-OUT-B30AB9870014
nodeid: tests/unit/test_proof_scope.py::test_snapshot_identifier_is_deterministic_for_the_same_scope_and_timestamp
result: passed
Test Outcome: test_snapshot_identifier_uses_only_posix_and_windows_safe_characters SEG-OUT-B35033E7FB3D
nodeid: tests/unit/test_proof_scope.py::test_snapshot_identifier_uses_only_posix_and_windows_safe_characters
result: passed
Test Outcome: test_the_composite_walk_collects_every_hop_in_one_pass SEG-OUT-EBEE8D32CE71
nodeid: tests/unit/test_proof_scope.py::test_the_composite_walk_collects_every_hop_in_one_pass
result: passed
Test Outcome: test_the_gate_discards_an_outcome_whose_witnesses_edge_fell_outside_the_scope SEG-OUT-5F54A645F7F8
nodeid: tests/unit/test_proof_scope.py::test_the_gate_discards_an_outcome_whose_witnesses_edge_fell_outside_the_scope
result: passed
Test Outcome: test_the_subgraph_keeps_a_witnesses_edge_between_two_in_scope_nodes SEG-OUT-428EA417ADD3
nodeid: tests/unit/test_proof_scope.py::test_the_subgraph_keeps_a_witnesses_edge_between_two_in_scope_nodes
result: passed
Test Outcome: test_total_is_false_when_a_top_level_requirement_is_missing SEG-OUT-AD308FBF919A
nodeid: tests/unit/test_proof_scope.py::test_total_is_false_when_a_top_level_requirement_is_missing
result: passed
Test Outcome: test_total_is_true_when_the_scope_covers_every_top_level_requirement SEG-OUT-46309BEDAC8F
nodeid: tests/unit/test_proof_scope.py::test_total_is_true_when_the_scope_covers_every_top_level_requirement
result: passed
Test Outcome: test_total_is_vacuously_true_for_a_graph_with_no_requirements SEG-OUT-B9E4D4B8BA31
nodeid: tests/unit/test_proof_scope.py::test_total_is_vacuously_true_for_a_graph_with_no_requirements
result: passed

tests/unit/test_records.py

Test Outcome: test_a_content_anchor_binds_a_digest_to_where_its_content_lives SEG-OUT-6E10782A5B1F
nodeid: tests/unit/test_records.py::test_a_content_anchor_binds_a_digest_to_where_its_content_lives
result: passed
Test Outcome: test_a_content_anchor_is_immutable SEG-OUT-801DB1F45BAC
nodeid: tests/unit/test_records.py::test_a_content_anchor_is_immutable
result: passed
Test Outcome: test_a_content_anchor_rejects_a_digest_that_is_not_raw_bytes SEG-OUT-433792D588D1
nodeid: tests/unit/test_records.py::test_a_content_anchor_rejects_a_digest_that_is_not_raw_bytes
result: passed
Test Outcome: test_a_content_anchor_requires_every_part_of_the_location SEG-OUT-BF18BCC77AEC
nodeid: tests/unit/test_records.py::test_a_content_anchor_requires_every_part_of_the_location
result: passed
Test Outcome: test_a_digest_serializes_as_lowercase_hex SEG-OUT-A94D7AE70FFD
nodeid: tests/unit/test_records.py::test_a_digest_serializes_as_lowercase_hex
result: passed
Test Outcome: test_a_duck_typed_source_satisfies_the_protocol SEG-OUT-80429F248646
nodeid: tests/unit/test_records.py::test_a_duck_typed_source_satisfies_the_protocol
result: passed
Test Outcome: test_a_hex_digest_parses_back_to_the_same_bytes SEG-OUT-3BF8A26339F4
nodeid: tests/unit/test_records.py::test_a_hex_digest_parses_back_to_the_same_bytes
result: passed
Test Outcome: test_a_node_record_cannot_be_mutated_through_its_content_anchors SEG-OUT-D91100FC2737
nodeid: tests/unit/test_records.py::test_a_node_record_cannot_be_mutated_through_its_content_anchors
result: passed
Test Outcome: test_a_node_record_carries_its_kind_and_anchored_content_hashes SEG-OUT-2C99623BF10D
nodeid: tests/unit/test_records.py::test_a_node_record_carries_its_kind_and_anchored_content_hashes
result: passed
Test Outcome: test_a_node_record_derives_its_content_hashes_from_its_anchors SEG-OUT-6C6E67E45422
nodeid: tests/unit/test_records.py::test_a_node_record_derives_its_content_hashes_from_its_anchors
result: passed
Test Outcome: test_a_node_record_is_immutable SEG-OUT-D47583049846
nodeid: tests/unit/test_records.py::test_a_node_record_is_immutable
result: passed
Test Outcome: test_a_node_record_needs_a_local_identifier_and_a_kind SEG-OUT-70C019A4F26F
nodeid: tests/unit/test_records.py::test_a_node_record_needs_a_local_identifier_and_a_kind
result: passed
Test Outcome: test_a_node_record_needs_at_least_one_content_hash SEG-OUT-23CFACC1545F
nodeid: tests/unit/test_records.py::test_a_node_record_needs_at_least_one_content_hash
result: passed
Test Outcome: test_a_node_record_rejects_a_bare_digest_where_an_anchor_belongs SEG-OUT-42DDDE38620E
nodeid: tests/unit/test_records.py::test_a_node_record_rejects_a_bare_digest_where_an_anchor_belongs
result: passed
Test Outcome: test_a_pending_edge_must_not_carry_an_edge_hash SEG-OUT-229CC828D08A
nodeid: tests/unit/test_records.py::test_a_pending_edge_must_not_carry_an_edge_hash
result: passed
Test Outcome: test_a_result_on_a_kind_that_records_no_execution_is_refused SEG-OUT-CD66A7C97167
nodeid: tests/unit/test_records.py::test_a_result_on_a_kind_that_records_no_execution_is_refused
result: passed
Test Outcome: test_a_result_outside_the_vocabulary_is_refused SEG-OUT-22921CADFA9D
nodeid: tests/unit/test_records.py::test_a_result_outside_the_vocabulary_is_refused
result: passed
Test Outcome: test_a_result_spelling_is_read_as_the_closed_vocabulary SEG-OUT-C9757328C3C2
nodeid: tests/unit/test_records.py::test_a_result_spelling_is_read_as_the_closed_vocabulary
result: passed
Test Outcome: test_a_review_event_accepts_an_empty_reason_but_not_a_missing_one SEG-OUT-6EDFD716F5AB
nodeid: tests/unit/test_records.py::test_a_review_event_accepts_an_empty_reason_but_not_a_missing_one
result: passed
Test Outcome: test_a_review_event_carries_the_role_it_was_made_in SEG-OUT-071A0B31BCD8
nodeid: tests/unit/test_records.py::test_a_review_event_carries_the_role_it_was_made_in
result: passed
Test Outcome: test_a_review_event_given_node_hashes_carries_them SEG-OUT-E26D33BAC54A
nodeid: tests/unit/test_records.py::test_a_review_event_given_node_hashes_carries_them
result: passed
Test Outcome: test_a_review_event_is_immutable SEG-OUT-0C6D8E417EA3
nodeid: tests/unit/test_records.py::test_a_review_event_is_immutable
result: passed
Test Outcome: test_a_review_event_needs_no_node_hashes SEG-OUT-E1E3056A6A73
nodeid: tests/unit/test_records.py::test_a_review_event_needs_no_node_hashes
result: passed
Test Outcome: test_a_review_event_preserves_the_reason_verbatim SEG-OUT-F530481DFDCF
nodeid: tests/unit/test_records.py::test_a_review_event_preserves_the_reason_verbatim
result: passed
Test Outcome: test_a_review_event_refuses_a_node_hash_that_is_not_a_digest SEG-OUT-26B9DECC1775
nodeid: tests/unit/test_records.py::test_a_review_event_refuses_a_node_hash_that_is_not_a_digest
result: passed
Test Outcome: test_a_review_event_requires_a_non_empty_role SEG-OUT-0E872DF63BD8
nodeid: tests/unit/test_records.py::test_a_review_event_requires_a_non_empty_role
result: passed
Test Outcome: test_a_review_event_requires_at_least_one_named_content_hash_per_endpoint SEG-OUT-653DA25C5AC9
nodeid: tests/unit/test_records.py::test_a_review_event_requires_at_least_one_named_content_hash_per_endpoint
result: passed
Test Outcome: test_a_review_event_requires_both_source_anchors SEG-OUT-DE5AACCF1A2B
nodeid: tests/unit/test_records.py::test_a_review_event_requires_both_source_anchors
result: passed
Test Outcome: test_a_review_events_content_anchors_are_immutable_and_equal_by_value SEG-OUT-90A8926E99C6
nodeid: tests/unit/test_records.py::test_a_review_events_content_anchors_are_immutable_and_equal_by_value
result: passed
Test Outcome: test_a_revision_on_a_kind_that_records_no_execution_is_refused SEG-OUT-7BAA1617C7A3
nodeid: tests/unit/test_records.py::test_a_revision_on_a_kind_that_records_no_execution_is_refused
result: passed
Test Outcome: test_a_role_is_a_free_string_not_a_closed_vocabulary SEG-OUT-9E523E4500EB
nodeid: tests/unit/test_records.py::test_a_role_is_a_free_string_not_a_closed_vocabulary
result: passed
Test Outcome: test_a_role_reads_as_its_name SEG-OUT-5EEC3CDD969F
nodeid: tests/unit/test_records.py::test_a_role_reads_as_its_name
result: passed
Test Outcome: test_a_string_that_is_not_a_digest_is_refused SEG-OUT-1839ED396DCC
nodeid: tests/unit/test_records.py::test_a_string_that_is_not_a_digest_is_refused
result: passed
Test Outcome: test_a_test_outcome_record_carries_the_result_it_was_given SEG-OUT-17ADD1F0B72C
nodeid: tests/unit/test_records.py::test_a_test_outcome_record_carries_the_result_it_was_given
result: passed
Test Outcome: test_a_test_outcome_record_carries_the_revision_it_was_given SEG-OUT-43C85B8F8E16
nodeid: tests/unit/test_records.py::test_a_test_outcome_record_carries_the_revision_it_was_given
result: passed
Test Outcome: test_a_test_outcome_record_must_carry_its_result SEG-OUT-607FDFA4A775
nodeid: tests/unit/test_records.py::test_a_test_outcome_record_must_carry_its_result
result: passed
Test Outcome: test_a_test_outcome_record_must_carry_its_revision SEG-OUT-53D11FA50D2A
nodeid: tests/unit/test_records.py::test_a_test_outcome_record_must_carry_its_revision
result: passed
Test Outcome: test_a_test_outcome_revision_cannot_be_empty SEG-OUT-91AF8F9A5F10
nodeid: tests/unit/test_records.py::test_a_test_outcome_revision_cannot_be_empty
result: passed
Test Outcome: test_a_test_outcomes_revision_never_enters_its_content_hashes SEG-OUT-1DF297C63E1A
nodeid: tests/unit/test_records.py::test_a_test_outcomes_revision_never_enters_its_content_hashes
result: passed
Test Outcome: test_a_waiver_approver_cannot_be_empty SEG-OUT-F71DCAFC026B
nodeid: tests/unit/test_records.py::test_a_waiver_approver_cannot_be_empty
result: passed
Test Outcome: test_a_waiver_expiry_is_accepted_as_an_iso_date_string SEG-OUT-2F7C1CE91936
nodeid: tests/unit/test_records.py::test_a_waiver_expiry_is_accepted_as_an_iso_date_string
result: passed
Test Outcome: test_a_waiver_expiry_outside_the_date_format_is_refused SEG-OUT-1A3EFC7EBE6F
nodeid: tests/unit/test_records.py::test_a_waiver_expiry_outside_the_date_format_is_refused
result: passed
Test Outcome: test_a_waiver_record_carries_the_expiry_and_approver_it_was_given SEG-OUT-AF8272C1EE20
nodeid: tests/unit/test_records.py::test_a_waiver_record_carries_the_expiry_and_approver_it_was_given
result: passed
Test Outcome: test_a_waiver_record_must_carry_its_approver SEG-OUT-2082467A47D0
nodeid: tests/unit/test_records.py::test_a_waiver_record_must_carry_its_approver
result: passed
Test Outcome: test_a_waiver_record_must_carry_its_expiry SEG-OUT-5375327EE1C9
nodeid: tests/unit/test_records.py::test_a_waiver_record_must_carry_its_expiry
result: passed
Test Outcome: test_a_waivers_expiry_and_approver_never_enter_its_content_hashes SEG-OUT-2BB8AF0B3D92
nodeid: tests/unit/test_records.py::test_a_waivers_expiry_and_approver_never_enter_its_content_hashes
result: passed
Test Outcome: test_an_active_edge_must_carry_the_hash_it_was_affirmed_against SEG-OUT-965837DB08EE
nodeid: tests/unit/test_records.py::test_an_active_edge_must_carry_the_hash_it_was_affirmed_against
result: passed
Test Outcome: test_an_approver_on_a_kind_that_grants_no_excusal_is_refused SEG-OUT-09730BF6F823
nodeid: tests/unit/test_records.py::test_an_approver_on_a_kind_that_grants_no_excusal_is_refused
result: passed
Test Outcome: test_an_edge_record_carries_endpoints_kind_and_state SEG-OUT-50C0CA4A69A5
nodeid: tests/unit/test_records.py::test_an_edge_record_carries_endpoints_kind_and_state
result: passed
Test Outcome: test_an_edge_record_is_immutable SEG-OUT-3795D4C70C81
nodeid: tests/unit/test_records.py::test_an_edge_record_is_immutable
result: passed
Test Outcome: test_an_edge_reference_is_usable_as_a_set_member SEG-OUT-113BCF8A522B
nodeid: tests/unit/test_records.py::test_an_edge_reference_is_usable_as_a_set_member
result: passed
Test Outcome: test_an_edge_reference_names_an_edge_by_its_identifying_triple SEG-OUT-608B85934F5F
nodeid: tests/unit/test_records.py::test_an_edge_reference_names_an_edge_by_its_identifying_triple
result: passed
Test Outcome: test_an_edge_reference_requires_every_part_of_the_name SEG-OUT-698D6151DD4E
nodeid: tests/unit/test_records.py::test_an_edge_reference_requires_every_part_of_the_name
result: passed
Test Outcome: test_an_expiry_on_a_kind_that_grants_no_excusal_is_refused SEG-OUT-F37F92FE903C
nodeid: tests/unit/test_records.py::test_an_expiry_on_a_kind_that_grants_no_excusal_is_refused
result: passed
Test Outcome: test_an_object_missing_edges_is_not_a_record_source SEG-OUT-56FCD5A8FCE5
nodeid: tests/unit/test_records.py::test_an_object_missing_edges_is_not_a_record_source
result: passed
Test Outcome: test_an_unaffirmed_edge_carries_no_edge_hash SEG-OUT-EA3F26C5C6DB
nodeid: tests/unit/test_records.py::test_an_unaffirmed_edge_carries_no_edge_hash
result: passed
Test Outcome: test_an_uppercase_digest_is_refused_rather_than_folded SEG-OUT-81F4A7F54BBA
nodeid: tests/unit/test_records.py::test_an_uppercase_digest_is_refused_rather_than_folded
result: passed
Test Outcome: test_edge_states_cover_the_specified_vocabulary SEG-OUT-52F1495227C7
nodeid: tests/unit/test_records.py::test_edge_states_cover_the_specified_vocabulary
result: passed
Test Outcome: test_no_record_type_offers_a_field_for_content SEG-OUT-2FBD274A2830
nodeid: tests/unit/test_records.py::test_no_record_type_offers_a_field_for_content
result: passed
Test Outcome: test_serializing_something_that_is_not_a_digest_is_refused SEG-OUT-4832830BDF66
nodeid: tests/unit/test_records.py::test_serializing_something_that_is_not_a_digest_is_refused
result: passed
Test Outcome: test_the_result_vocabulary_is_the_four_ways_a_run_can_end SEG-OUT-31A39BFC4985
nodeid: tests/unit/test_records.py::test_the_result_vocabulary_is_the_four_ways_a_run_can_end
result: passed
Test Outcome: test_the_two_roles_are_nameable SEG-OUT-259BE1CF289A
nodeid: tests/unit/test_records.py::test_the_two_roles_are_nameable
result: passed

tests/unit/test_reqs_reader.py

Test Outcome: test_a_need_without_a_title_is_refused_naming_the_need SEG-OUT-8FD7D6F1F965
nodeid: tests/unit/test_reqs_reader.py::test_a_need_without_a_title_is_refused_naming_the_need
result: passed
Test Outcome: test_a_need_without_content_is_refused_naming_the_need SEG-OUT-5B2DC3398359
nodeid: tests/unit/test_reqs_reader.py::test_a_need_without_content_is_refused_naming_the_need
result: passed
Test Outcome: test_a_refines_target_missing_from_the_export_is_still_an_edge SEG-OUT-125A01FD9F15
nodeid: tests/unit/test_reqs_reader.py::test_a_refines_target_missing_from_the_export_is_still_an_edge
result: passed
Test Outcome: test_absent_null_and_empty_refines_hash_alike SEG-OUT-5551E69D777D
nodeid: tests/unit/test_reqs_reader.py::test_absent_null_and_empty_refines_hash_alike
result: passed
Test Outcome: test_an_export_with_two_versions_is_refused SEG-OUT-5E9F2A8B2B35
nodeid: tests/unit/test_reqs_reader.py::test_an_export_with_two_versions_is_refused
result: passed
Test Outcome: test_an_export_without_needs_is_refused SEG-OUT-8E8B1D991C57
nodeid: tests/unit/test_reqs_reader.py::test_an_export_without_needs_is_refused
result: passed
Test Outcome: test_an_unreadable_or_non_json_export_is_refused_not_raised_raw SEG-OUT-1CDB8BDC23BB
nodeid: tests/unit/test_reqs_reader.py::test_an_unreadable_or_non_json_export_is_refused_not_raised_raw
result: passed
Test Outcome: test_fields_outside_the_authored_three_do_not_reach_the_form SEG-OUT-ABFDA6FD68AF
nodeid: tests/unit/test_reqs_reader.py::test_fields_outside_the_authored_three_do_not_reach_the_form
result: passed
Test Outcome: test_non_ascii_content_is_hashed_as_utf8_not_as_escapes SEG-OUT-6EF9464CC460
nodeid: tests/unit/test_reqs_reader.py::test_non_ascii_content_is_hashed_as_utf8_not_as_escapes
result: passed
Test Outcome: test_the_canonical_form_of_a_literal_need_is_exactly_these_bytes SEG-OUT-769C0819A998
nodeid: tests/unit/test_reqs_reader.py::test_the_canonical_form_of_a_literal_need_is_exactly_these_bytes
result: passed
Test Outcome: test_the_canonical_form_sorts_refines_and_orders_keys SEG-OUT-EEB9B8D6AC68
nodeid: tests/unit/test_reqs_reader.py::test_the_canonical_form_sorts_refines_and_orders_keys
result: passed
Test Outcome: test_the_digest_is_the_sha256_of_the_canonical_form SEG-OUT-A09277DAC834
nodeid: tests/unit/test_reqs_reader.py::test_the_digest_is_the_sha256_of_the_canonical_form
result: passed

tests/unit/test_satisfaction.py

Test Outcome: test_a_complete_outcomes_evidence_is_not_discarded SEG-OUT-253B4805DB25
nodeid: tests/unit/test_satisfaction.py::test_a_complete_outcomes_evidence_is_not_discarded
result: passed
Test Outcome: test_a_deep_refines_chain_evaluates_without_exhausting_the_stack SEG-OUT-711073CBC548
nodeid: tests/unit/test_satisfaction.py::test_a_deep_refines_chain_evaluates_without_exhausting_the_stack
result: passed
Test Outcome: test_a_diamond_child_serves_both_parents SEG-OUT-894FEE2541AD
nodeid: tests/unit/test_satisfaction.py::test_a_diamond_child_serves_both_parents
result: passed
Test Outcome: test_a_direct_edges_outcome_never_governs_the_non_leaf_rule SEG-OUT-0F8C163751B4
nodeid: tests/unit/test_satisfaction.py::test_a_direct_edges_outcome_never_governs_the_non_leaf_rule
result: passed
Test Outcome: test_a_discarded_outcome_beside_a_complete_one_opens_no_gap SEG-OUT-7725A89B9564
nodeid: tests/unit/test_satisfaction.py::test_a_discarded_outcome_beside_a_complete_one_opens_no_gap
result: passed
Test Outcome: test_a_failing_outcome_excused_by_a_present_waiver_satisfies SEG-OUT-D022878BE9FF
nodeid: tests/unit/test_satisfaction.py::test_a_failing_outcome_excused_by_a_present_waiver_satisfies
result: passed
Test Outcome: test_a_failing_outcome_is_not_a_passing_outcome[error] SEG-OUT-1D4AF15D7A20
nodeid: tests/unit/test_satisfaction.py::test_a_failing_outcome_is_not_a_passing_outcome[error]
result: passed
Test Outcome: test_a_failing_outcome_is_not_a_passing_outcome[failed] SEG-OUT-1A1B5A91BB45
nodeid: tests/unit/test_satisfaction.py::test_a_failing_outcome_is_not_a_passing_outcome[failed]
result: passed
Test Outcome: test_a_fully_covered_leaf_is_satisfied SEG-OUT-D628BD15D3A5
nodeid: tests/unit/test_satisfaction.py::test_a_fully_covered_leaf_is_satisfied
result: passed
Test Outcome: test_a_graph_with_no_requirement_nodes_yields_an_empty_verdict SEG-OUT-78867184E1E4
nodeid: tests/unit/test_satisfaction.py::test_a_graph_with_no_requirement_nodes_yields_an_empty_verdict
result: passed
Test Outcome: test_a_leaf_whose_only_confirming_outcome_was_skipped_is_unsatisfied SEG-OUT-7532345DFE58
nodeid: tests/unit/test_satisfaction.py::test_a_leaf_whose_only_confirming_outcome_was_skipped_is_unsatisfied
result: passed
Test Outcome: test_a_leaf_with_no_implements_edge_is_unsatisfied SEG-OUT-3C6F5EC480EF
nodeid: tests/unit/test_satisfaction.py::test_a_leaf_with_no_implements_edge_is_unsatisfied
result: passed
Test Outcome: test_a_leaf_with_no_verifies_edge_is_unsatisfied SEG-OUT-6A3C7BF54061
nodeid: tests/unit/test_satisfaction.py::test_a_leaf_with_no_verifies_edge_is_unsatisfied
result: passed
Test Outcome: test_a_non_requirement_refiner_poisons_its_parent SEG-OUT-286812B15060
nodeid: tests/unit/test_satisfaction.py::test_a_non_requirement_refiner_poisons_its_parent
result: passed
Test Outcome: test_a_parent_of_satisfied_children_is_satisfied SEG-OUT-8CBD05615A64
nodeid: tests/unit/test_satisfaction.py::test_a_parent_of_satisfied_children_is_satisfied
result: passed
Test Outcome: test_a_pending_direct_edge_blocks_an_otherwise_satisfied_parent SEG-OUT-7C84F9D547D1
nodeid: tests/unit/test_satisfaction.py::test_a_pending_direct_edge_blocks_an_otherwise_satisfied_parent
result: passed
Test Outcome: test_a_skipped_outcome_beside_a_passing_one_does_not_block_its_leaf SEG-OUT-2BB2122D0CE4
nodeid: tests/unit/test_satisfaction.py::test_a_skipped_outcome_beside_a_passing_one_does_not_block_its_leaf
result: passed
Test Outcome: test_a_skipped_outcome_does_not_rescue_an_unwaived_failing_one SEG-OUT-E679E46AADBD
nodeid: tests/unit/test_satisfaction.py::test_a_skipped_outcome_does_not_rescue_an_unwaived_failing_one
result: passed
Test Outcome: test_a_skipped_outcome_without_a_witness_is_still_discarded SEG-OUT-31ED96562A17
nodeid: tests/unit/test_satisfaction.py::test_a_skipped_outcome_without_a_witness_is_still_discarded
result: passed
Test Outcome: test_a_spec_on_a_non_active_verifies_edge_still_owes_a_passing_outcome SEG-OUT-4186B77177BF
nodeid: tests/unit/test_satisfaction.py::test_a_spec_on_a_non_active_verifies_edge_still_owes_a_passing_outcome
result: passed
Test Outcome: test_a_verifying_spec_with_no_outcome_blocks_its_leaf SEG-OUT-F0C96CC67B7D
nodeid: tests/unit/test_satisfaction.py::test_a_verifying_spec_with_no_outcome_blocks_its_leaf
result: passed
Test Outcome: test_a_waiver_does_not_make_a_skipped_outcome_count SEG-OUT-13FAB3E0537A
nodeid: tests/unit/test_satisfaction.py::test_a_waiver_does_not_make_a_skipped_outcome_count
result: passed
Test Outcome: test_an_active_direct_edge_leaves_the_parent_satisfied SEG-OUT-F4DE5DAE4349
nodeid: tests/unit/test_satisfaction.py::test_an_active_direct_edge_leaves_the_parent_satisfied
result: passed
Test Outcome: test_an_empty_graph_yields_an_empty_verdict SEG-OUT-B4BC8025CAED
nodeid: tests/unit/test_satisfaction.py::test_an_empty_graph_yields_an_empty_verdict
result: passed
Test Outcome: test_an_excusal_edge_whose_waiver_record_is_absent_excuses_nothing SEG-OUT-E213CA7B7645
nodeid: tests/unit/test_satisfaction.py::test_an_excusal_edge_whose_waiver_record_is_absent_excuses_nothing
result: passed
Test Outcome: test_an_orphan_requirement_is_unsatisfied_not_vacuously_satisfied SEG-OUT-8F750A06565A
nodeid: tests/unit/test_satisfaction.py::test_an_orphan_requirement_is_unsatisfied_not_vacuously_satisfied
result: passed
Test Outcome: test_an_outcome_that_confirms_without_witnessing_is_discarded SEG-OUT-ED7087C653F8
nodeid: tests/unit/test_satisfaction.py::test_an_outcome_that_confirms_without_witnessing_is_discarded
result: passed
Test Outcome: test_an_outcome_that_witnesses_without_confirming_is_discarded SEG-OUT-ACA9DDE1AE7F
nodeid: tests/unit/test_satisfaction.py::test_an_outcome_that_witnesses_without_confirming_is_discarded
result: passed
Test Outcome: test_an_unknown_identifier_is_reported_rather_than_answered SEG-OUT-E29450D4DB59
nodeid: tests/unit/test_satisfaction.py::test_an_unknown_identifier_is_reported_rather_than_answered
result: passed
Test Outcome: test_evaluation_leaves_the_graph_unchanged SEG-OUT-58ADACF3BB97
nodeid: tests/unit/test_satisfaction.py::test_evaluation_leaves_the_graph_unchanged
result: passed
Test Outcome: test_every_incomplete_outcome_is_named_wherever_it_hangs SEG-OUT-F25BE6E84D74
nodeid: tests/unit/test_satisfaction.py::test_every_incomplete_outcome_is_named_wherever_it_hangs
result: passed
Test Outcome: test_every_non_active_implements_edge_fails_the_active_test[broken] SEG-OUT-F64F60F0A495
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_implements_edge_fails_the_active_test[broken]
result: passed
Test Outcome: test_every_non_active_implements_edge_fails_the_active_test[directlyOutdated] SEG-OUT-7D419D865FCE
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_implements_edge_fails_the_active_test[directlyOutdated]
result: passed
Test Outcome: test_every_non_active_implements_edge_fails_the_active_test[doublyOutdated] SEG-OUT-CADC0C687F38
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_implements_edge_fails_the_active_test[doublyOutdated]
result: passed
Test Outcome: test_every_non_active_implements_edge_fails_the_active_test[pending] SEG-OUT-8D4CCCE9C2AA
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_implements_edge_fails_the_active_test[pending]
result: passed
Test Outcome: test_every_non_active_implements_edge_fails_the_active_test[transitivelySuspect] SEG-OUT-195AB6CD9638
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_implements_edge_fails_the_active_test[transitivelySuspect]
result: passed
Test Outcome: test_every_non_active_verifies_edge_fails_the_active_test[broken] SEG-OUT-A95383CA0504
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_verifies_edge_fails_the_active_test[broken]
result: passed
Test Outcome: test_every_non_active_verifies_edge_fails_the_active_test[directlyOutdated] SEG-OUT-493CD96AE363
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_verifies_edge_fails_the_active_test[directlyOutdated]
result: passed
Test Outcome: test_every_non_active_verifies_edge_fails_the_active_test[doublyOutdated] SEG-OUT-7BA1051299DF
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_verifies_edge_fails_the_active_test[doublyOutdated]
result: passed
Test Outcome: test_every_non_active_verifies_edge_fails_the_active_test[pending] SEG-OUT-2B209D82FA8B
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_verifies_edge_fails_the_active_test[pending]
result: passed
Test Outcome: test_every_non_active_verifies_edge_fails_the_active_test[transitivelySuspect] SEG-OUT-879305D3BE69
nodeid: tests/unit/test_satisfaction.py::test_every_non_active_verifies_edge_fails_the_active_test[transitivelySuspect]
result: passed
Test Outcome: test_excusal_is_counted_whatever_the_excusing_edges_own_state SEG-OUT-4D0B2B148CB1
nodeid: tests/unit/test_satisfaction.py::test_excusal_is_counted_whatever_the_excusing_edges_own_state
result: passed
Test Outcome: test_one_passing_outcome_beside_an_unwaived_failing_one_no_longer_satisfies SEG-OUT-4E62D9380360
nodeid: tests/unit/test_satisfaction.py::test_one_passing_outcome_beside_an_unwaived_failing_one_no_longer_satisfies
result: passed
Test Outcome: test_one_unsatisfied_child_poisons_the_parent SEG-OUT-D01DF9588AD0
nodeid: tests/unit/test_satisfaction.py::test_one_unsatisfied_child_poisons_the_parent
result: passed
Test Outcome: test_poison_reaches_every_ancestor SEG-OUT-0AAB1B40EF69
nodeid: tests/unit/test_satisfaction.py::test_poison_reaches_every_ancestor
result: passed
Test Outcome: test_the_leaf_rule_is_a_predicate_of_its_own SEG-OUT-3CAA6B8BA5A5
nodeid: tests/unit/test_satisfaction.py::test_the_leaf_rule_is_a_predicate_of_its_own
result: passed
Test Outcome: test_the_non_leaf_rule_judges_against_the_verdicts_it_is_given SEG-OUT-0DE9B92DB263
nodeid: tests/unit/test_satisfaction.py::test_the_non_leaf_rule_judges_against_the_verdicts_it_is_given
result: passed
Test Outcome: test_the_verdict_covers_every_requirement_and_only_requirements SEG-OUT-544E69870A19
nodeid: tests/unit/test_satisfaction.py::test_the_verdict_covers_every_requirement_and_only_requirements
result: passed
Test Outcome: test_the_verdict_is_a_value_not_a_handle_on_the_evaluation SEG-OUT-FC555B14B85D
nodeid: tests/unit/test_satisfaction.py::test_the_verdict_is_a_value_not_a_handle_on_the_evaluation
result: passed
Test Outcome: test_two_evaluations_of_one_graph_yield_equal_verdicts SEG-OUT-9F5A550EF1E2
nodeid: tests/unit/test_satisfaction.py::test_two_evaluations_of_one_graph_yield_equal_verdicts
result: passed

tests/unit/test_selector.py

Test Outcome: test_a_selector_matching_nothing_returns_empty SEG-OUT-0B3494D80199
nodeid: tests/unit/test_selector.py::test_a_selector_matching_nothing_returns_empty
result: passed
Test Outcome: test_an_empty_selector_matches_everything SEG-OUT-785F85ECB726
nodeid: tests/unit/test_selector.py::test_an_empty_selector_matches_everything
result: passed
Test Outcome: test_below_leaves_out_an_edge_that_crosses_the_subtree_border SEG-OUT-7D46C30E3A1D
nodeid: tests/unit/test_selector.py::test_below_leaves_out_an_edge_that_crosses_the_subtree_border
result: passed
Test Outcome: test_below_narrows_to_the_subtree SEG-OUT-99E1CFF4B184
nodeid: tests/unit/test_selector.py::test_below_narrows_to_the_subtree
result: passed
Test Outcome: test_endpoints_narrow_the_selection SEG-OUT-FFFB05737091
nodeid: tests/unit/test_selector.py::test_endpoints_narrow_the_selection
result: passed
Test Outcome: test_is_empty_is_true_only_when_every_field_is_absent SEG-OUT-6F39DD09E021
nodeid: tests/unit/test_selector.py::test_is_empty_is_true_only_when_every_field_is_absent
result: passed
Test Outcome: test_kind_and_both_endpoints_select_at_most_one SEG-OUT-DD68C013F819
nodeid: tests/unit/test_selector.py::test_kind_and_both_endpoints_select_at_most_one
result: passed
Test Outcome: test_kind_narrows_the_selection SEG-OUT-F1C61F1181BF
nodeid: tests/unit/test_selector.py::test_kind_narrows_the_selection
result: passed
Test Outcome: test_the_four_fields_are_registered_as_separate_options SEG-OUT-D2D6985864F0
nodeid: tests/unit/test_selector.py::test_the_four_fields_are_registered_as_separate_options
result: passed

tests/unit/test_store_loader.py

Test Outcome: test_a_content_declaration_that_is_not_a_path_is_refused SEG-OUT-88257A523C3A
nodeid: tests/unit/test_store_loader.py::test_a_content_declaration_that_is_not_a_path_is_refused
result: passed
Test Outcome: test_a_content_hash_is_the_digest_of_the_stored_bytes SEG-OUT-259C01E6A341
nodeid: tests/unit/test_store_loader.py::test_a_content_hash_is_the_digest_of_the_stored_bytes
result: passed
Test Outcome: test_a_content_path_leaving_the_store_is_refused SEG-OUT-EFD43D39D611
nodeid: tests/unit/test_store_loader.py::test_a_content_path_leaving_the_store_is_refused
result: passed
Test Outcome: test_a_declared_result_reaches_the_record SEG-OUT-BA0245FE698D
nodeid: tests/unit/test_store_loader.py::test_a_declared_result_reaches_the_record
result: passed
Test Outcome: test_a_duplicate_identifier_is_left_for_the_builder_to_refuse SEG-OUT-A9DCA5119279
nodeid: tests/unit/test_store_loader.py::test_a_duplicate_identifier_is_left_for_the_builder_to_refuse
result: passed
Test Outcome: test_a_loaded_node_locates_each_hash_in_the_store SEG-OUT-5032A9C3BD53
nodeid: tests/unit/test_store_loader.py::test_a_loaded_node_locates_each_hash_in_the_store
result: passed
Test Outcome: test_a_malformed_manifest_names_the_file SEG-OUT-5DBB7074F91A
nodeid: tests/unit/test_store_loader.py::test_a_malformed_manifest_names_the_file
result: passed
Test Outcome: test_a_missing_content_file_names_the_node_and_the_path SEG-OUT-63A549CE139E
nodeid: tests/unit/test_store_loader.py::test_a_missing_content_file_names_the_node_and_the_path
result: passed
Test Outcome: test_a_node_carries_every_content_hash_its_entry_declares SEG-OUT-DB5B95AB5AF0
nodeid: tests/unit/test_store_loader.py::test_a_node_carries_every_content_hash_its_entry_declares
result: passed
Test Outcome: test_a_node_manifest_without_a_kind_is_refused SEG-OUT-59E5C3616836
nodeid: tests/unit/test_store_loader.py::test_a_node_manifest_without_a_kind_is_refused
result: passed
Test Outcome: test_a_node_manifest_yields_a_record_of_the_declared_kind SEG-OUT-6946C1B9A218
nodeid: tests/unit/test_store_loader.py::test_a_node_manifest_yields_a_record_of_the_declared_kind
result: passed
Test Outcome: test_a_pair_that_is_not_two_endpoints_is_refused SEG-OUT-45DB79EB1B5B
nodeid: tests/unit/test_store_loader.py::test_a_pair_that_is_not_two_endpoints_is_refused
result: passed
Test Outcome: test_a_result_on_a_kind_that_records_no_execution_is_refused SEG-OUT-954018DB801D
nodeid: tests/unit/test_store_loader.py::test_a_result_on_a_kind_that_records_no_execution_is_refused
result: passed
Test Outcome: test_a_result_the_vocabulary_does_not_contain_is_refused SEG-OUT-C4C31D86A63D
nodeid: tests/unit/test_store_loader.py::test_a_result_the_vocabulary_does_not_contain_is_refused
result: passed
Test Outcome: test_a_root_that_is_not_a_store_is_refused_at_construction SEG-OUT-8C6D9C2B21D9
nodeid: tests/unit/test_store_loader.py::test_a_root_that_is_not_a_store_is_refused_at_construction
result: passed
Test Outcome: test_a_store_missing_its_manifest_directories_is_refused SEG-OUT-C0FF5FD837A4
nodeid: tests/unit/test_store_loader.py::test_a_store_missing_its_manifest_directories_is_refused
result: passed
Test Outcome: test_a_test_outcome_without_a_result_is_refused SEG-OUT-09CB70E47E79
nodeid: tests/unit/test_store_loader.py::test_a_test_outcome_without_a_result_is_refused
result: passed
Test Outcome: test_an_absolute_content_path_is_refused SEG-OUT-C73FEA2B64A9
nodeid: tests/unit/test_store_loader.py::test_an_absolute_content_path_is_refused
result: passed
Test Outcome: test_an_edge_manifest_yields_an_edge_per_pair SEG-OUT-759463D9B4F5
nodeid: tests/unit/test_store_loader.py::test_an_edge_manifest_yields_an_edge_per_pair
result: passed
Test Outcome: test_an_entry_declaring_no_content_is_refused SEG-OUT-844B5198DB1C
nodeid: tests/unit/test_store_loader.py::test_an_entry_declaring_no_content_is_refused
result: passed
Test Outcome: test_content_is_hashed_verbatim SEG-OUT-1FB8B2FEAEDD
nodeid: tests/unit/test_store_loader.py::test_content_is_hashed_verbatim
result: passed
Test Outcome: test_entries_keep_the_order_they_are_written_in SEG-OUT-BA2FF606F37D
nodeid: tests/unit/test_store_loader.py::test_entries_keep_the_order_they_are_written_in
result: passed
Test Outcome: test_every_declared_content_file_exists SEG-OUT-EB16F9A29D9D
nodeid: tests/unit/test_store_loader.py::test_every_declared_content_file_exists
result: passed
Test Outcome: test_every_edge_from_the_store_is_pending SEG-OUT-0E0BC3E665E4
nodeid: tests/unit/test_store_loader.py::test_every_edge_from_the_store_is_pending
result: passed
Test Outcome: test_every_kind_in_the_store_is_one_the_vocabulary_declares SEG-OUT-EDB2C0381C00
nodeid: tests/unit/test_store_loader.py::test_every_kind_in_the_store_is_one_the_vocabulary_declares
result: passed
Test Outcome: test_every_outcome_result_agrees_with_the_content_it_hashes SEG-OUT-EF8E1725C13E
nodeid: tests/unit/test_store_loader.py::test_every_outcome_result_agrees_with_the_content_it_hashes
result: passed
Test Outcome: test_every_realization_marks_the_requirement_its_specification_verifies SEG-OUT-D1BDDFC0BF04
nodeid: tests/unit/test_store_loader.py::test_every_realization_marks_the_requirement_its_specification_verifies
result: passed
Test Outcome: test_every_requirement_in_the_store_is_a_requirement_of_this_repository SEG-OUT-0CDBB2A3A540
nodeid: tests/unit/test_store_loader.py::test_every_requirement_in_the_store_is_a_requirement_of_this_repository
result: passed
Test Outcome: test_manifests_are_read_in_filename_order SEG-OUT-4C29206FC713
nodeid: tests/unit/test_store_loader.py::test_manifests_are_read_in_filename_order
result: passed
Test Outcome: test_the_loader_satisfies_the_record_source_protocol SEG-OUT-519BF7CD1A80
nodeid: tests/unit/test_store_loader.py::test_the_loader_satisfies_the_record_source_protocol
result: passed
Test Outcome: test_the_store_carries_the_uneven_coverage_the_workflows_need SEG-OUT-47DDA5C63B1D
nodeid: tests/unit/test_store_loader.py::test_the_store_carries_the_uneven_coverage_the_workflows_need
result: passed
Test Outcome: test_the_store_contains_no_dangling_endpoint SEG-OUT-A816817E876C
nodeid: tests/unit/test_store_loader.py::test_the_store_contains_no_dangling_endpoint
result: passed
Test Outcome: test_the_store_is_reproducible_across_loads SEG-OUT-BDBCCA27C34F
nodeid: tests/unit/test_store_loader.py::test_the_store_is_reproducible_across_loads
result: passed
Test Outcome: test_the_streams_can_be_walked_again_from_a_fresh_call SEG-OUT-D1889756DBC8
nodeid: tests/unit/test_store_loader.py::test_the_streams_can_be_walked_again_from_a_fresh_call
result: passed
Test Outcome: test_the_would_be_store_builds SEG-OUT-2DECA28CCC65
nodeid: tests/unit/test_store_loader.py::test_the_would_be_store_builds
result: passed

tests/unit/test_taxonomy.py

Test Outcome: test_a_node_kind_is_not_an_edge_kind SEG-OUT-BE70C333AD38
nodeid: tests/unit/test_taxonomy.py::test_a_node_kind_is_not_an_edge_kind
result: passed
Test Outcome: test_asking_an_undeclared_node_kind_for_its_content_hashes_is_an_error SEG-OUT-7E08B0C93972
nodeid: tests/unit/test_taxonomy.py::test_asking_an_undeclared_node_kind_for_its_content_hashes_is_an_error
result: passed
Test Outcome: test_asking_whether_an_undeclared_kind_propagates_is_an_error SEG-OUT-6C4813272192
nodeid: tests/unit/test_taxonomy.py::test_asking_whether_an_undeclared_kind_propagates_is_an_error
result: passed
Test Outcome: test_each_node_kind_declares_exactly_these_content_hash_names SEG-OUT-D64304AB81BF
nodeid: tests/unit/test_taxonomy.py::test_each_node_kind_declares_exactly_these_content_hash_names
result: passed
Test Outcome: test_every_declared_node_kind_carries_at_least_one_content_hash SEG-OUT-9483F73B3322
nodeid: tests/unit/test_taxonomy.py::test_every_declared_node_kind_carries_at_least_one_content_hash
result: passed
Test Outcome: test_every_propagating_kind_is_a_declared_edge_kind SEG-OUT-A1C26410A423
nodeid: tests/unit/test_taxonomy.py::test_every_propagating_kind_is_a_declared_edge_kind
result: passed
Test Outcome: test_exactly_refines_verifies_and_implements_propagate SEG-OUT-9202993C4D5D
nodeid: tests/unit/test_taxonomy.py::test_exactly_refines_verifies_and_implements_propagate
result: passed
Test Outcome: test_no_kind_carries_the_serialization_prefix SEG-OUT-28A03A2CE484
nodeid: tests/unit/test_taxonomy.py::test_no_kind_carries_the_serialization_prefix
result: passed
Test Outcome: test_no_token_is_both_a_node_kind_and_an_edge_kind SEG-OUT-A17C565C8F4C
nodeid: tests/unit/test_taxonomy.py::test_no_token_is_both_a_node_kind_and_an_edge_kind
result: passed
Test Outcome: test_the_declared_kinds_cannot_be_mutated_by_a_caller SEG-OUT-7D279DB10443
nodeid: tests/unit/test_taxonomy.py::test_the_declared_kinds_cannot_be_mutated_by_a_caller
result: passed
Test Outcome: test_the_declared_names_are_usable_as_node_hash_inputs SEG-OUT-4D6C2EEAA69C
nodeid: tests/unit/test_taxonomy.py::test_the_declared_names_are_usable_as_node_hash_inputs
result: passed
Test Outcome: test_the_edge_kinds_are_exactly_these_seven SEG-OUT-4C682DE42F99
nodeid: tests/unit/test_taxonomy.py::test_the_edge_kinds_are_exactly_these_seven
result: passed
Test Outcome: test_the_evidence_edges_do_not_propagate SEG-OUT-CDC1BAA8289B
nodeid: tests/unit/test_taxonomy.py::test_the_evidence_edges_do_not_propagate
result: passed
Test Outcome: test_the_evidence_kinds_are_declared_kinds_and_no_evidence_edge_propagates SEG-OUT-E99A1C07443D
nodeid: tests/unit/test_taxonomy.py::test_the_evidence_kinds_are_declared_kinds_and_no_evidence_edge_propagates
result: passed
Test Outcome: test_the_evidence_kinds_are_the_outcome_node_and_the_three_evidence_edges SEG-OUT-9BF7D6F7CA0B
nodeid: tests/unit/test_taxonomy.py::test_the_evidence_kinds_are_the_outcome_node_and_the_three_evidence_edges
result: passed
Test Outcome: test_the_node_kinds_are_exactly_these_five SEG-OUT-8E855DB1E80B
nodeid: tests/unit/test_taxonomy.py::test_the_node_kinds_are_exactly_these_five
result: passed
Test Outcome: test_the_split_kinds_separate_intent_from_execution SEG-OUT-A8D2B394450F
nodeid: tests/unit/test_taxonomy.py::test_the_split_kinds_separate_intent_from_execution
result: passed
Test Outcome: test_two_kinds_with_identical_content_still_differ SEG-OUT-8FDF7DD01F1D
nodeid: tests/unit/test_taxonomy.py::test_two_kinds_with_identical_content_still_differ
result: passed