Orchestrata Ultimate › Tests › Reference › scripts › test_ast_gen_skeleton

Tests reference — tests/scripts/test_ast_gen_skeleton.py

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

Prose pending.

tests/scripts/test_ast_gen_skeleton.py

source · 90 tests · 1589 lines

Tests for the AST tool's gen-skeleton generator — the build-factory

Kind Name Line Description
class TestProtocolEmitter 155
method TestProtocolEmitter.test_emits_runtime_checkable_protocol 156
method TestProtocolEmitter.test_class_level_traces_decorator 166
method TestProtocolEmitter.test_method_bodies_are_ellipsis 174
method TestProtocolEmitter.test_field_without_type_falls_back_to_any 182
class TestParserInternals 202
method TestParserInternals.test_untyped_param_parses_with_no_type_annotation 203
method TestParserInternals.test_skel_field_is_public 216
method TestParserInternals.test_skel_method_is_public 223
class TestDataclassEmitter 236
method TestDataclassEmitter.test_emits_typed_dataclass_fields 237
method TestDataclassEmitter.test_no_traces_decorator_when_no_pragma 247
method TestDataclassEmitter.test_empty_dataclass_gets_a_flagged_todo_not_a_silent_empty_body 255
method TestDataclassEmitter.test_mutable_default_uses_field_default_factory 268
method TestDataclassEmitter.test_untyped_field_falls_back_to_any 284
class TestEnumEmitter 304
method TestEnumEmitter.test_emits_strenum_with_lowercased_values 305
method TestEnumEmitter.test_empty_enum_emits_ellipsis 315
class TestToolEmitterComposition 334
method TestToolEmitterComposition.test_class_implements_tool_protocol 335
method TestToolEmitterComposition.test_constructor_injects_public_and_private_fields 342
method TestToolEmitterComposition.test_constructor_injects_tracer_with_default 349
method TestToolEmitterComposition.test_class_level_traces_decorator_stamped 358
method TestToolEmitterComposition.test_unresolved_type_reference_flagged_not_guessed 366
class TestToolEmitterCommandPattern 378
method TestToolEmitterCommandPattern.test_execute_is_async_and_command_boilerplate 379
method TestToolEmitterCommandPattern.test_execute_validates_args_type 391
method TestToolEmitterCommandPattern.test_execute_delegates_to_matching_leaf_by_name 397
method TestToolEmitterCommandPattern.test_leaf_method_raises_not_implemented_with_exact_message 406
method TestToolEmitterCommandPattern.test_execute_without_matching_leaf_raises_inline 415
method TestToolEmitterCommandPattern.test_generated_module_is_valid_python 424
class TestToolEmitterPatternRoles 435
method TestToolEmitterPatternRoles.test_accessor_role_returns_matching_composed_field 436
method TestToolEmitterPatternRoles.test_factory_role_without_deterministic_wiring_falls_back_to_leaf 444
method TestToolEmitterPatternRoles.test_method_level_traces_override 453
method TestToolEmitterPatternRoles.test_accessor_role_without_matching_field_falls_back_to_leaf 460
method TestToolEmitterPatternRoles.test_delegate_leaf_ignores_non_dataclass_args_type 483
method TestToolEmitterPatternRoles.test_tool_with_no_declared_fields_gets_tracer_only_init 507
class TestTraceMap 531
method TestTraceMap.test_class_level_req_maps_to_class_with_no_method 532
method TestTraceMap.test_method_level_override_maps_to_specific_method 544
method TestTraceMap.test_trace_map_is_json_serializable 556
class TestRealizationArrow 567
method TestRealizationArrow.test_a_realizes_b_means_a_extends_b 568
class TestUnsupportedStereotype 580
method TestUnsupportedStereotype.test_unknown_stereotype_raises_value_error 581
method TestUnsupportedStereotype.test_empty_diagram_raises_value_error 597
class TestCliGenSkeleton 617
method TestCliGenSkeleton.test_cli_stdout_emits_code 618
method TestCliGenSkeleton.test_cli_output_and_trace_map_flags_write_files 626
method TestCliGenSkeleton.test_cli_missing_diagram_file_errors 647
method TestCliGenSkeleton.test_cli_appears_in_help 652
class TestSelfVerifyCheckTraces 667
method TestSelfVerifyCheckTraces.test_generated_sample_has_no_malformed_traces 668
class TestPlainClassEmitter 683
method TestPlainClassEmitter.test_emits_plain_class_with_composed_init 684
method TestPlainClassEmitter.test_method_is_a_leaf_stub 694
method TestPlainClassEmitter.test_class_level_traces_decorator 703
class TestRealSpec072Contract 721
method TestRealSpec072Contract.test_runs_end_to_end_without_crashing 726
method TestRealSpec072Contract.test_reuse_list_resolves_real_cross_package_imports 738 Fix 5: the contract's own %% REUSE (...): Name (module.path)
method TestRealSpec072Contract.test_unresolved_note_still_covers_types_the_reuse_list_omits 758 Fix 5 resolves what the REUSE list covers; types it genuinely
method TestRealSpec072Contract.test_tracer_default_is_a_real_classmethod_not_a_string_match 785 Fix 1 (widened factory heuristic): Tracer.default() Tracer has
method TestRealSpec072Contract.test_tool_search_tool_constructs_without_attribute_error 809 Fix 3: ToolSearchTool realizes BaseTool (a REAL class whose
class TestBracketDecorators 834
method TestBracketDecorators.test_staticmethod_bracket_emits_no_self_no_cls 835
method TestBracketDecorators.test_classmethod_bracket_emits_cls_first_param 849
method TestBracketDecorators.test_property_bracket_emits_property_decorator 863
method TestBracketDecorators.test_abstractmethod_bracket_emits_decorator_and_import 877
method TestBracketDecorators.test_property_and_abstractmethod_compose_in_correct_order 892 Real Python requires @property OUTER, @abstractmethod
method TestBracketDecorators.test_protocol_methods_honor_bracket_decorators_too 912 Fix 1 applies to ALL emitters, including <<Protocol>>.
class TestWidenedFactoryHeuristic 934
method TestWidenedFactoryHeuristic.test_bare_create_self_returning_is_classmethod 935
method TestWidenedFactoryHeuristic.test_bare_from_prefixed_self_returning_is_classmethod 949
method TestWidenedFactoryHeuristic.test_create_not_self_returning_stays_a_plain_method 963 The widened heuristic is gated on returning the CLASS'S OWN
class TestPartialSuccessAndNoStereotypeFallback 988
method TestPartialSuccessAndNoStereotypeFallback.test_one_unsupported_class_is_skipped_others_still_generate 989
method TestPartialSuccessAndNoStereotypeFallback.test_all_classes_skipped_still_raises 1011
method TestPartialSuccessAndNoStereotypeFallback.test_no_stereotype_class_warns_and_falls_back_to_plain_class 1033
method TestPartialSuccessAndNoStereotypeFallback.test_spec021_ontology_generates_all_fifteen_classes 1049 Acceptance (fix 2): spec-021-ontology.mmd has bare (no-stereotype)
class TestMethodParamDefaults 1075
method TestMethodParamDefaults.test_split_on_first_eq_ignores_nested_brackets 1076
method TestMethodParamDefaults.test_parse_params_skips_blank_tokens_and_captures_default 1081
method TestMethodParamDefaults.test_render_param_emits_the_default 1089
method TestMethodParamDefaults.test_method_param_default_round_trips_into_generated_signature 1094
class TestEnumExplicitValues 1114
method TestEnumExplicitValues.test_explicit_value_is_honored 1115
method TestEnumExplicitValues.test_no_default_falls_back_to_lowercased_name 1131
method TestEnumExplicitValues.test_mixed_explicit_and_default_values 1144
class TestExtendPragma 1166
method TestExtendPragma.test_extend_class_is_not_generated 1167
method TestExtendPragma.test_extend_class_gets_a_mode_marker_in_trace_map 1187
method TestExtendPragma.test_spec014_resurrection_no_longer_duplicates_pipeline_kernel_client 1209 Acceptance (fix 6): the real contract's own %% extend pragma
class TestNamespaceRouting 1233
method TestNamespaceRouting.test_empty_diagram_raises_value_error 1254
method TestNamespaceRouting.test_namespace_group_with_only_extend_classes_is_skipped 1259 A namespace whose only member is mode: extend (fix 6) has NO
method TestNamespaceRouting.test_classes_route_to_their_namespace_module 1281
method TestNamespaceRouting.test_trace_map_per_group_uses_the_namespace_output_file 1296
method TestNamespaceRouting.test_cli_writes_one_file_per_namespace 1313
method TestNamespaceRouting.test_cli_namespace_with_output_and_trace_map_writes_combined_map 1327
method TestNamespaceRouting.test_cli_namespace_without_output_prints_every_module_to_stdout 1366
class TestLeafmapEmission 1387
method TestLeafmapEmission.test_leafmap_spans_point_at_the_implement_comment_through_the_raise 1388
method TestLeafmapEmission.test_leafmap_covers_tool_execute_delegate_region 1398
method TestLeafmapEmission.test_no_leaf_spans_for_fully_generated_accessor 1407 A deterministic accessor has NO leaf region — it's fully
method TestLeafmapEmission.test_cli_writes_leafmap_json_alongside_output 1415
class TestRealContractRoundTrip 1435
method TestRealContractRoundTrip.test_generate_parse_execute_construct_and_leaf_not_implemented 1443
class TestTildeGenerics 1504
method TestTildeGenerics.test_convert_simple_and_nested_tildes 1505
method TestTildeGenerics.test_class_name_generics_emit_pep695_header 1517
method TestTildeGenerics.test_declared_init_suppresses_composed_init 1530 A contract that DECLARES init owns construction: exactly ONE
method TestTildeGenerics.test_declared_init_class_passes_gate0 1543
method TestTildeGenerics.test_gate2_counts_declared_init_in_denominator 1564 6 leaves / 6 methods (incl. the declared init) = 100%, not