Agent KB_tests_p2 - grisuno/ReadMenator GitHub Wiki

Subsystem: tests (page 2 of 4)

Previous: KB_tests.md

tests/test_diagrams.py

  • Doc: Contract tests for interactive system maps.
  • Layer: testing
  • Language: py
  • Symbols:
    • TestSystemMapBuilderContract (class, line 30) class TestSystemMapBuilderContract(TestCase)
    • TestSystemMapValidatorContract (class, line 176) class TestSystemMapValidatorContract(TestCase)
    • TestInteractiveMapRendererContract (class, line 237) class TestInteractiveMapRendererContract(TestCase)
    • TestDocsSitePublisherContract (class, line 367) class TestDocsSitePublisherContract(TestCase)
    • TestVisNetworkRendererContract (class, line 528) class TestVisNetworkRendererContract(TestCase)
    • TestDiagramVariantsContract (class, line 668) class TestDiagramVariantsContract(TestCase)
    • setUp (method, line 33) def setUp(self)
    • _make_graph (method, line 38) def _make_graph(self)
    • test_builder_supports_five_kinds (method, line 52) def test_builder_supports_five_kinds(self)
    • test_builder_produces_all_kinds (method, line 59) def test_builder_produces_all_kinds(self)
    • test_builder_is_deterministic (method, line 68) def test_builder_is_deterministic(self)
    • test_builder_orders_links_deterministically (method, line 80) def test_builder_orders_links_deterministically(self)
    • test_builder_validates_large_graph_for_all_kinds (method, line 101) def test_builder_validates_large_graph_for_all_kinds(self)
    • test_builder_reports_total_scope (method, line 119) def test_builder_reports_total_scope(self)
    • test_builder_attaches_symbols_and_docs (method, line 126) def test_builder_attaches_symbols_and_docs(self)
    • test_builder_truncates_symbols_per_node (method, line 143) def test_builder_truncates_symbols_per_node(self)
    • test_builder_truncates_to_configured_limit (method, line 152) def test_builder_truncates_to_configured_limit(self)
    • test_compare_reports_added_removed_rerouted (method, line 162) def test_compare_reports_added_removed_rerouted(self)
    • setUp (method, line 179) def setUp(self)
    • _valid_map (method, line 184) def _valid_map(self)
    • test_validator_passes_valid_map (method, line 197) def test_validator_passes_valid_map(self)
    • test_validator_rejects_duplicate_node_ids (method, line 204) def test_validator_rejects_duplicate_node_ids(self)
    • test_validator_rejects_dangling_edge (method, line 214) def test_validator_rejects_dangling_edge(self)
    • test_validator_rejects_empty_map (method, line 222) def test_validator_rejects_empty_map(self)
    • test_validator_rejects_unknown_kind (method, line 228) def test_validator_rejects_unknown_kind(self)
    • setUp (method, line 240) def setUp(self)
    • _map (method, line 246) def _map(self, kind)
    • test_renderer_produces_standalone_document (method, line 256) def test_renderer_produces_standalone_document(self)
    • test_renderer_never_uses_inner_html (method, line 263) def test_renderer_never_uses_inner_html(self)
    • test_renderer_has_no_external_requests (method, line 270) def test_renderer_has_no_external_requests(self)
    • test_renderer_includes_interaction_controls (method, line 277) def test_renderer_includes_interaction_controls(self)
    • test_renderer_includes_keyboard_and_deep_links (method, line 283) def test_renderer_includes_keyboard_and_deep_links(self)
    • test_renderer_escapes_malicious_labels (method, line 292) def test_renderer_escapes_malicious_labels(self)
    • test_renderer_embeds_valid_json_payloads (method, line 305) def test_renderer_embeds_valid_json_payloads(self)
    • test_renderer_covers_all_five_kinds (method, line 314) def test_renderer_covers_all_five_kinds(self)
    • test_renderer_links_gallery_home_when_configured (method, line 321) def test_renderer_links_gallery_home_when_configured(self)
    • test_renderer_omits_gallery_home_by_default (method, line 328) def test_renderer_omits_gallery_home_by_default(self)
    • test_renderer_keeps_canvas_distinct_from_nodes (method, line 333) def test_renderer_keeps_canvas_distinct_from_nodes(self)
    • test_renderer_supports_drag_and_settle (method, line 341) def test_renderer_supports_drag_and_settle(self)
    • test_renderer_sanitizes_viewer_state_on_export (method, line 349) def test_renderer_sanitizes_viewer_state_on_export(self)
    • test_renderer_buttons_explain_their_purpose (method, line 355) def test_renderer_buttons_explain_their_purpose(self)
    • setUp (method, line 370) def setUp(self)
    • _maps (method, line 376) def _maps(self)
    • test_publish_writes_index_plus_five_maps (method, line 386) def test_publish_writes_index_plus_five_maps(self)
    • test_publish_index_links_every_map (method, line 397) def test_publish_index_links_every_map(self)
    • test_publish_output_has_no_external_requests (method, line 406) def test_publish_output_has_no_external_requests(self)
    • test_publish_footer_links_github_and_pypi (method, line 423) def test_publish_footer_links_github_and_pypi(self)
    • test_publish_is_deterministic (method, line 437) def test_publish_is_deterministic(self)
    • test_publish_escapes_malicious_project_name (method, line 448) def test_publish_escapes_malicious_project_name(self)
    • test_publish_escapes_malicious_stat_keys (method, line 457) def test_publish_escapes_malicious_stat_keys(self)
    • test_publish_skips_invalid_maps (method, line 468) def test_publish_skips_invalid_maps(self)
    • test_publish_empty_maps_writes_empty_gallery (method, line 480) def test_publish_empty_maps_writes_empty_gallery(self)
    • test_publish_leaves_input_maps_unmodified (method, line 489) def test_publish_leaves_input_maps_unmodified(self)
    • test_publish_flat_subdir_keeps_links_relative (method, line 498) def test_publish_flat_subdir_keeps_links_relative(self)
    • test_publish_index_explains_how_to_read (method, line 511) def test_publish_index_explains_how_to_read(self)
    • test_publish_card_reports_primary_scope (method, line 519) def test_publish_card_reports_primary_scope(self)
    • setUp (method, line 531) def setUp(self)
    • _map (method, line 537) def _map(self, kind)
    • test_renderers_ignore_placeholders_inside_payload_text (method, line 547) def test_renderers_ignore_placeholders_inside_payload_text(self)
    • test_renderer_ships_edge_actions (method, line 564) def test_renderer_ships_edge_actions(self)
    • test_renderer_uses_configured_cdn_urls (method, line 570) def test_renderer_uses_configured_cdn_urls(self)
    • test_renderer_builds_vis_network_with_physics (method, line 583) def test_renderer_builds_vis_network_with_physics(self)
    • test_renderer_links_gallery_home_when_configured (method, line 591) def test_renderer_links_gallery_home_when_configured(self)
    • test_renderer_disables_physics_from_config (method, line 599) def test_renderer_disables_physics_from_config(self)
    • test_renderer_escapes_malicious_titles (method, line 606) def test_renderer_escapes_malicious_titles(self)
    • test_renderer_exposes_reader_controls (method, line 619) def test_renderer_exposes_reader_controls(self)
    • test_renderer_is_deterministic (method, line 625) def test_renderer_is_deterministic(self)
    • test_renderer_embeds_valid_payloads (method, line 630) def test_renderer_embeds_valid_payloads(self)
    • test_renderer_documents_symbols_per_file (method, line 638) def test_renderer_documents_symbols_per_file(self)
    • test_renderer_escapes_malicious_symbol_docs (method, line 654) def test_renderer_escapes_malicious_symbol_docs(self)
    • _project (method, line 671) def _project(self, tmp)
    • test_export_diagrams_writes_vis_maps_by_default (method, line 676) def test_export_diagrams_writes_vis_maps_by_default(self)
    • test_export_diagrams_falls_back_offline_when_disabled (method, line 690) def test_export_diagrams_falls_back_offline_when_disabled(self)
  • Depends on: readmenator/_app.py, readmenator/_config.py, readmenator/_diagrams.py, readmenator/_models.py

tests/test_documentation.py

  • Layer: testing
  • Language: py
  • Symbols:
    • TestDocumentationGeneratorContract (class, line 17) class TestDocumentationGeneratorContract(TestCase)
    • setUp (method, line 18) def setUp(self)
    • test_contains_header (method, line 22) def test_contains_header(self)
    • test_contains_metadata_line (method, line 26) def test_contains_metadata_line(self)
    • test_contains_mermaid_block (method, line 32) def test_contains_mermaid_block(self)
    • test_contains_architecture_reference (method, line 37) def test_contains_architecture_reference(self)
    • test_contains_cpg_block (method, line 41) def test_contains_cpg_block(self)
    • test_contains_statistics_dashboard (method, line 46) def test_contains_statistics_dashboard(self)
    • test_groups_files_by_language (method, line 51) def test_groups_files_by_language(self)
    • test_lists_symbols_under_file (method, line 70) def test_lists_symbols_under_file(self)
    • test_class_symbol_is_pluralized_correctly (method, line 83) def test_class_symbol_is_pluralized_correctly(self)
    • test_function_pluralization (method, line 97) def test_function_pluralization(self)
    • test_method_pluralization (method, line 109) def test_method_pluralization(self)
    • test_shows_no_symbols_for_empty_files (method, line 121) def test_shows_no_symbols_for_empty_files(self)
    • test_includes_file_path (method, line 132) def test_includes_file_path(self)
    • test_docstring_in_output (method, line 143) def test_docstring_in_output(self)
    • test_truncation_note_when_limited (method, line 155) def test_truncation_note_when_limited(self)
    • test_taint_propagation_section_present (method, line 165) def test_taint_propagation_section_present(self)
    • test_hotspot_section_present (method, line 185) def test_hotspot_section_present(self)
    • test_no_taint_section_when_empty (method, line 203) def test_no_taint_section_when_empty(self)
    • test_no_hotspot_section_when_empty (method, line 207) def test_no_hotspot_section_when_empty(self)
    • test_cpg_block_disabled_via_config (method, line 211) def test_cpg_block_disabled_via_config(self)
    • test_architectural_layers_section (method, line 217) def test_architectural_layers_section(self)
    • test_security_findings_section (method, line 229) def test_security_findings_section(self)
    • test_context_budget_zero_returns_full_content (method, line 252) def test_context_budget_zero_returns_full_content(self)
    • test_context_budget_returns_compact_summary (method, line 260) def test_context_budget_returns_compact_summary(self)
    • test_context_budget_prioritizes_god_nodes (method, line 268) def test_context_budget_prioritizes_god_nodes(self)
    • test_context_budget_truncates_at_limit (method, line 285) def test_context_budget_truncates_at_limit(self)
    • test_context_budget_includes_security_findings (method, line 293) def test_context_budget_includes_security_findings(self)
  • Depends on: readmenator/_config.py, readmenator/_documentation.py, readmenator/_models.py

tests/test_exporter.py

  • Doc: Contract tests for the GraphExporter.
  • Layer: testing
  • Language: py
  • Symbols:
    • TestGraphExporterContract (class, line 23) class TestGraphExporterContract(TestCase)
    • setUp (method, line 26) def setUp(self)
    • _make_node (method, line 30) def _make_node(self, nid, label, lang, symbols)
    • _make_sym (method, line 42) def _make_sym(self, name, kind, line)
    • test_to_json_produces_valid_json (method, line 47) def test_to_json_produces_valid_json(self)
    • test_to_json_includes_symbol_data (method, line 56) def test_to_json_includes_symbol_data(self)
    • test_to_json_includes_metadata (method, line 65) def test_to_json_includes_metadata(self)
    • test_to_json_includes_analysis_metadata (method, line 76) def test_to_json_includes_analysis_metadata(self)
    • test_to_html_produces_standalone_page (method, line 101) def test_to_html_produces_standalone_page(self)
    • test_to_html_includes_node_data (method, line 109) def test_to_html_includes_node_data(self)
    • test_to_html_includes_community_legend_when_analysis (method, line 116) def test_to_html_includes_community_legend_when_analysis(self)
    • test_to_svg_produces_svg_string (method, line 138) def test_to_svg_produces_svg_string(self)
    • test_to_svg_render_truncation_for_large_graph (method, line 145) def test_to_svg_render_truncation_for_large_graph(self)
    • test_to_svg_includes_readmenator_title (method, line 154) def test_to_svg_includes_readmenator_title(self)
    • test_to_json_handles_resolved_edges (method, line 160) def test_to_json_handles_resolved_edges(self)
  • Depends on: readmenator/_config.py, readmenator/_exporter.py, readmenator/_models.py

tests/test_flowcharts.py

  • Doc: Contract tests for architecture tiers, execution flows, and receiver typing.
  • Layer: testing
  • Language: py
  • Symbols:
    • _project (function, line 94) def _project()
    • TestGraphAlgorithms (class, line 113) class TestGraphAlgorithms(TestCase)
    • TestArchitectureDiagram (class, line 138) class TestArchitectureDiagram(TestCase)
    • TestExecutionFlows (class, line 190) class TestExecutionFlows(TestCase)
    • TestPythonReceiverTypes (class, line 262) class TestPythonReceiverTypes(TestCase)
    • TestFlowLayoutAndViewer (class, line 289) class TestFlowLayoutAndViewer(TestCase)
    • test_flowcharts_tarjan_finds_cycles (method, line 116) def test_flowcharts_tarjan_finds_cycles(self)
    • test_flowcharts_transitive_reduction_drops_implied (method, line 120) def test_flowcharts_transitive_reduction_drops_implied(self)
    • test_flowcharts_eades_lin_smyth_orders_by_weight (method, line 124) def test_flowcharts_eades_lin_smyth_orders_by_weight(self)
    • test_flowcharts_eades_lin_smyth_deterministic (method, line 129) def test_flowcharts_eades_lin_smyth_deterministic(self)
    • test_flowcharts_mermaid_text_escapes (method, line 133) def test_flowcharts_mermaid_text_escapes(self)
    • _fixture (method, line 141) def _fixture(self)
    • test_flowcharts_architecture_tiers_and_upward (method, line 159) def test_flowcharts_architecture_tiers_and_upward(self)
    • test_flowcharts_architecture_skips_tests_and_vendor (method, line 171) def test_flowcharts_architecture_skips_tests_and_vendor(self)
    • test_flowcharts_architecture_section_markdown (method, line 181) def test_flowcharts_architecture_section_markdown(self)
    • setUpClass (method, line 194) def setUpClass(cls)
    • test_flowcharts_typed_receivers_route_calls (method, line 199) def test_flowcharts_typed_receivers_route_calls(self)
    • test_flowcharts_entry_points_scored (method, line 204) def test_flowcharts_entry_points_scored(self)
    • test_flowcharts_walk_order_and_recursion (method, line 210) def test_flowcharts_walk_order_and_recursion(self)
    • test_flowcharts_call_tree_mermaid (method, line 218) def test_flowcharts_call_tree_mermaid(self)
    • test_flowcharts_control_flow_switch_loop_try (method, line 227) def test_flowcharts_control_flow_switch_loop_try(self)
    • test_flowcharts_sequence_crosses_files (method, line 239) def test_flowcharts_sequence_crosses_files(self)
    • test_flowcharts_section_and_kb_integration (method, line 247) def test_flowcharts_section_and_kb_integration(self)
    • setUp (method, line 265) def setUp(self)
    • test_pytypes_receiver_classes (method, line 269) def test_pytypes_receiver_classes(self)
    • test_pytypes_resolve_method_picks_typed_owner (method, line 275) def test_pytypes_resolve_method_picks_typed_owner(self)
    • test_pytypes_accepts_rejects_unproven (method, line 279) def test_pytypes_accepts_rejects_unproven(self)
    • setUpClass (method, line 293) def setUpClass(cls)
    • test_flowlayout_kinds_present (method, line 297) def test_flowlayout_kinds_present(self)
    • test_flowlayout_never_a_strip (method, line 303) def test_flowlayout_never_a_strip(self)
    • test_flowlayout_ladder_is_narrow (method, line 317) def test_flowlayout_ladder_is_narrow(self)
    • test_flowlayout_edges_have_geometry (method, line 328) def test_flowlayout_edges_have_geometry(self)
    • test_flowpage_self_contained_and_escaped (method, line 336) def test_flowpage_self_contained_and_escaped(self)
    • test_flowpage_thumbnail (method, line 345) def test_flowpage_thumbnail(self)
    • test_flowpage_api_site_embeds_flows (method, line 350) def test_flowpage_api_site_embeds_flows(self)
  • Depends on: readmenator/_apidocs.py, readmenator/_apidocs_page.py, readmenator/_config.py, readmenator/_documentation.py, readmenator/_flowcharts.py, readmenator/_flowlayout.py, readmenator/_flowpage.py, readmenator/_models.py, readmenator/_pytypes.py

tests/test_folder_readme.py

  • Doc: Contract tests for per-folder README.md files (readmenator/_folder_readme.py).
  • Layer: testing
  • Language: py
  • Symbols:
    • TestFolderReadmeWriterContract (class, line 20) class TestFolderReadmeWriterContract(TestCase)
    • TestFolderReadmeConsumersContract (class, line 103) class TestFolderReadmeConsumersContract(TestCase)
    • TestFolderReadmeAppWiring (class, line 144) class TestFolderReadmeAppWiring(TestCase)
    • setUp (method, line 23) def setUp(self)
    • tearDown (method, line 36) def tearDown(self)
    • readme (method, line 40) def readme(self, dirname)
    • test_folder_readme_written_only_for_existing_folders (method, line 44) def test_folder_readme_written_only_for_existing_folders(self)
    • test_folder_readme_explains_purpose_and_lists_only_present_entries (method, line 50) def test_folder_readme_explains_purpose_and_lists_only_present_entries(self)
    • test_folder_readme_is_idempotent_and_deterministic (method, line 64) def test_folder_readme_is_idempotent_and_deterministic(self)
    • test_folder_readme_keeps_hand_written_readme (method, line 70) def test_folder_readme_keeps_hand_written_readme(self)
    • test_folder_readme_refuses_symlinks (method, line 77) def test_folder_readme_refuses_symlinks(self)
    • test_folder_readme_disabled_writes_nothing (method, line 90) def test_folder_readme_disabled_writes_nothing(self)
    • test_folder_readme_specs_cover_every_generated_folder (method, line 95) def test_folder_readme_specs_cover_every_generated_folder(self)
    • setUp (method, line 106) def setUp(self)
    • tearDown (method, line 116) def tearDown(self)
    • test_folder_readme_not_published_to_site_or_github_wiki (method, line 120) def test_folder_readme_not_published_to_site_or_github_wiki(self)
    • test_folder_readme_hand_written_still_published (method, line 127) def test_folder_readme_hand_written_still_published(self)
    • test_folder_readme_excluded_from_agent_inventory (method, line 133) def test_folder_readme_excluded_from_agent_inventory(self)
    • test_folder_readme_survives_component_pruning (method, line 137) def test_folder_readme_survives_component_pruning(self)
    • test_folder_readme_written_by_export_apidocs (method, line 147) def test_folder_readme_written_by_export_apidocs(self)
  • Depends on: readmenator/_agent_output.py, readmenator/_app.py, readmenator/_components.py, readmenator/_config.py, readmenator/_diagrams.py, readmenator/_folder_readme.py, readmenator/_gh_wiki.py

tests/test_gh_wiki.py

  • Doc: Contract tests for the GitHub wiki publisher (no network: git/gh calls are faked).
  • Layer: testing
  • Language: py
  • Symbols:
    • _FakeRunner (class, line 14) class _FakeRunner
    • _project (function, line 41) def _project(root, config)
    • TestGitHubWikiPages (class, line 61) class TestGitHubWikiPages(TestCase)
    • TestGitHubWikiPublish (class, line 115) class TestGitHubWikiPublish(TestCase)
    • __init__ (method, line 17) def __init__(self, origin, clone_ok, dirty)
    • __call__ (method, line 24) def __call__(self, command, cwd)
    • test_gh_wiki_page_names_are_flat_and_prefixed (method, line 64) def test_gh_wiki_page_names_are_flat_and_prefixed(self)
    • test_gh_wiki_render_rewrites_links_and_permalinks (method, line 71) def test_gh_wiki_render_rewrites_links_and_permalinks(self)
    • test_gh_wiki_permalinks_never_escape_project_root (method, line 88) def test_gh_wiki_permalinks_never_escape_project_root(self)
    • test_gh_wiki_dry_run_writes_locally_and_prunes_only_owned_pages (method, line 96) def test_gh_wiki_dry_run_writes_locally_and_prunes_only_owned_pages(self)
    • test_gh_wiki_publish_clones_commits_and_pushes (method, line 118) def test_gh_wiki_publish_clones_commits_and_pushes(self)
    • test_gh_wiki_publish_skips_push_when_unchanged (method, line 130) def test_gh_wiki_publish_skips_push_when_unchanged(self)
    • test_gh_wiki_publish_explains_uninitialized_wiki (method, line 139) def test_gh_wiki_publish_explains_uninitialized_wiki(self)
    • test_gh_wiki_rejects_malformed_configured_remote (method, line 147) def test_gh_wiki_rejects_malformed_configured_remote(self)
    • test_gh_wiki_enabled_by_default (method, line 154) def test_gh_wiki_enabled_by_default(self)
    • test_rebuild_skips_wiki_outside_git_checkout (method, line 157) def test_rebuild_skips_wiki_outside_git_checkout(self)
    • test_rebuild_publishes_wiki_in_git_checkout (method, line 167) def test_rebuild_publishes_wiki_in_git_checkout(self)
  • Depends on: readmenator/_app.py, readmenator/_config.py, readmenator/_gh_wiki.py

tests/test_graphlayout.py

  • Doc: Contract tests for ForceAtlas2 and hierarchical edge bundling layouts.
  • Layer: testing
  • Language: py
  • Symbols:
    • _two_cliques (function, line 22) def _two_cliques()
    • TestForceAtlas2Contract (class, line 31) class TestForceAtlas2Contract(TestCase)
    • TestEdgeBundlingContract (class, line 88) class TestEdgeBundlingContract(TestCase)
    • TestForceAtlas2ThreeDContract (class, line 126) class TestForceAtlas2ThreeDContract(TestCase)
    • TestSphericalBundlingContract (class, line 167) class TestSphericalBundlingContract(TestCase)
    • test_graphlayout_fa2_snapshot_count (method, line 34) def test_graphlayout_fa2_snapshot_count(self)
    • test_graphlayout_fa2_is_deterministic (method, line 41) def test_graphlayout_fa2_is_deterministic(self)
    • test_graphlayout_fa2_separates_communities (method, line 47) def test_graphlayout_fa2_separates_communities(self)
    • test_graphlayout_fa2_python_fallback_runs (method, line 59) def test_graphlayout_fa2_python_fallback_runs(self)
    • test_graphlayout_empty_and_single (method, line 66) def test_graphlayout_empty_and_single(self)
    • test_graphlayout_fit_frames_stays_in_box (method, line 71) def test_graphlayout_fit_frames_stays_in_box(self)
    • test_graphlayout_interpolate_endpoints (method, line 80) def test_graphlayout_interpolate_endpoints(self)
    • setUp (method, line 91) def setUp(self)
    • test_graphlayout_leaves_on_circle (method, line 99) def test_graphlayout_leaves_on_circle(self)
    • test_graphlayout_curves_skip_unknown_and_keep_endpoints (method, line 104) def test_graphlayout_curves_skip_unknown_and_keep_endpoints(self)
    • test_graphlayout_cross_group_curve_bends_inward (method, line 111) def test_graphlayout_cross_group_curve_bends_inward(self)
    • test_graphlayout_groups_cover_full_circle (method, line 119) def test_graphlayout_groups_cover_full_circle(self)
    • test_graphlayout_fa2_3d_returns_triples (method, line 129) def test_graphlayout_fa2_3d_returns_triples(self)
    • test_graphlayout_fa2_3d_is_deterministic (method, line 137) def test_graphlayout_fa2_3d_is_deterministic(self)
    • test_graphlayout_fa2_3d_python_fallback_runs (method, line 143) def test_graphlayout_fa2_3d_python_fallback_runs(self)
    • test_graphlayout_fa2_2d_seed_unchanged_by_dims (method, line 149) def test_graphlayout_fa2_2d_seed_unchanged_by_dims(self)
    • test_graphlayout_single_node_3d_at_origin (method, line 153) def test_graphlayout_single_node_3d_at_origin(self)
    • test_graphlayout_normalize_cloud_bounds_outliers (method, line 158) def test_graphlayout_normalize_cloud_bounds_outliers(self)
    • setUp (method, line 170) def setUp(self)
    • test_graphlayout_fibonacci_sphere_unit_vectors (method, line 180) def test_graphlayout_fibonacci_sphere_unit_vectors(self)
    • test_graphlayout_sphere_leaves_on_surface (method, line 188) def test_graphlayout_sphere_leaves_on_surface(self)
    • test_graphlayout_sphere_caps_have_exact_sizes (method, line 195) def test_graphlayout_sphere_caps_have_exact_sizes(self)
    • test_graphlayout_sphere_caps_are_compact (method, line 199) def test_graphlayout_sphere_caps_are_compact(self)
    • test_graphlayout_sphere_hub_is_closest_to_cap_center (method, line 209) def test_graphlayout_sphere_hub_is_closest_to_cap_center(self)
    • test_graphlayout_sphere_curves_skip_unknown_and_self (method, line 215) def test_graphlayout_sphere_curves_skip_unknown_and_self(self)
    • test_graphlayout_sphere_cross_curve_dives_inside (method, line 223) def test_graphlayout_sphere_cross_curve_dives_inside(self)
    • test_graphlayout_sphere_is_deterministic_and_empty_safe (method, line 228) def test_graphlayout_sphere_is_deterministic_and_empty_safe(self)
    • mean (function, line 52) def mean(pairs)
  • Depends on: readmenator/_graphlayout.py

tests/test_graphrag.py

  • Doc: Contract tests for the zero-token GraphRAG index and retrieval.
  • Layer: testing
  • Language: py
  • Symbols:
    • _fixture (function, line 32) def _fixture()
    • TestGraphRagIndexContract (class, line 79) class TestGraphRagIndexContract(TestCase)
    • TestGraphRagSearchContract (class, line 159) class TestGraphRagSearchContract(TestCase)
    • TestGraphRagStoreContract (class, line 213) class TestGraphRagStoreContract(TestCase)
    • TestGraphRagPrimitives (class, line 241) class TestGraphRagPrimitives(TestCase)
    • setUp (method, line 82) def setUp(self)
    • test_graphrag_entities_cover_files_symbols_externals (method, line 89) def test_graphrag_entities_cover_files_symbols_externals(self)
    • test_graphrag_relationships_are_typed (method, line 97) def test_graphrag_relationships_are_typed(self)
    • test_graphrag_report_hierarchy_has_root (method, line 104) def test_graphrag_report_hierarchy_has_root(self)
    • test_graphrag_reports_are_extractive_and_rated (method, line 112) def test_graphrag_reports_are_extractive_and_rated(self)
    • test_graphrag_text_units_use_source_spans (method, line 121) def test_graphrag_text_units_use_source_spans(self)
    • test_graphrag_text_units_respect_max_lines (method, line 128) def test_graphrag_text_units_respect_max_lines(self)
    • test_graphrag_privacy_mode_strips_sources_and_docs (method, line 133) def test_graphrag_privacy_mode_strips_sources_and_docs(self)
    • test_graphrag_disabled_returns_empty_index (method, line 142) def test_graphrag_disabled_returns_empty_index(self)
    • test_graphrag_build_is_deterministic (method, line 148) def test_graphrag_build_is_deterministic(self)
    • test_graphrag_roundtrip_dict (method, line 153) def test_graphrag_roundtrip_dict(self)
    • setUp (method, line 162) def setUp(self)
    • test_graphrag_local_search_ranks_matching_symbol (method, line 169) def test_graphrag_local_search_ranks_matching_symbol(self)
    • test_graphrag_local_search_expands_through_graph (method, line 177) def test_graphrag_local_search_expands_through_graph(self)
    • test_graphrag_global_search_uses_reports (method, line 183) def test_graphrag_global_search_uses_reports(self)
    • test_graphrag_auto_routes_broad_questions_global (method, line 190) def test_graphrag_auto_routes_broad_questions_global(self)
    • test_graphrag_no_match_falls_back_global (method, line 195) def test_graphrag_no_match_falls_back_global(self)
    • test_graphrag_budget_never_emits_empty_sections (method, line 199) def test_graphrag_budget_never_emits_empty_sections(self)
    • test_graphrag_budget_bounds_markdown (method, line 207) def test_graphrag_budget_bounds_markdown(self)
    • test_graphrag_store_writes_and_loads (method, line 216) def test_graphrag_store_writes_and_loads(self)
    • test_graphrag_store_rejects_wrong_schema (method, line 231) def test_graphrag_store_rejects_wrong_schema(self)
    • test_graphrag_tokenize_splits_camel_and_keeps_whole (method, line 244) def test_graphrag_tokenize_splits_camel_and_keeps_whole(self)
    • test_graphrag_bm25_prefers_rare_terms (method, line 250) def test_graphrag_bm25_prefers_rare_terms(self)
  • Depends on: readmenator/_config.py, readmenator/_graphrag.py, readmenator/_models.py

tests/test_hotspots.py

  • Doc: TestHotspotAnalyzerContract: Contract: HotspotAnalyzer detects hotspots, cycles, and change impact.
  • Layer: testing
  • Language: py
  • Symbols:
    • TestHotspotAnalyzerContract (class, line 10) class TestHotspotAnalyzerContract(TestCase)
    • setUp (method, line 13) def setUp(self)
    • _make_node (method, line 17) def _make_node(self, nid, label, sym_count)
    • test_empty_graph_returns_empty_hotspots (method, line 29) def test_empty_graph_returns_empty_hotspots(self)
    • test_hotspots_rank_by_combined_score (method, line 33) def test_hotspots_rank_by_combined_score(self)
    • test_hotspot_includes_scores (method, line 43) def test_hotspot_includes_scores(self)
    • test_no_cycles_in_acyclic_graph (method, line 53) def test_no_cycles_in_acyclic_graph(self)
    • test_detects_simple_cycle (method, line 66) def test_detects_simple_cycle(self)
    • test_change_impact_ranks_by_total_impact (method, line 79) def test_change_impact_ranks_by_total_impact(self)
    • test_change_impact_no_edges (method, line 94) def test_change_impact_no_edges(self)
    • test_hotspot_weights_from_config (method, line 100) def test_hotspot_weights_from_config(self)
  • Depends on: readmenator/_config.py, readmenator/_hotspots.py, readmenator/_models.py

tests/test_htmlpack.py

  • Doc: Contract tests for embedded page payload compression (readmenator/_htmlpack.py).
  • Layer: testing
  • Language: py
  • Symbols:
    • _inline_scripts (function, line 47) def _inline_scripts(document)
    • _build_site (function, line 52) def _build_site(root, config)
    • TestPayloadScriptContract (class, line 68) class TestPayloadScriptContract(TestCase)
    • TestCompressedPagesContract (class, line 140) class TestCompressedPagesContract(TestCase)
    • setUp (method, line 71) def setUp(self)
    • test_htmlpack_small_payload_stays_plain_and_escaped (method, line 77) def test_htmlpack_small_payload_stays_plain_and_escaped(self)
    • test_htmlpack_large_payload_is_gzip_base64_and_round_trips (method, line 83) def test_htmlpack_large_payload_is_gzip_base64_and_round_trips(self)
    • test_htmlpack_compression_is_deterministic (method, line 90) def test_htmlpack_compression_is_deterministic(self)
    • test_htmlpack_threshold_and_disable_flag (method, line 95) def test_htmlpack_threshold_and_disable_flag(self)
    • test_htmlpack_plain_format_matches_legacy_serialization (method, line 101) def test_htmlpack_plain_format_matches_legacy_serialization(self)
    • test_htmlpack_missing_or_empty_element_reads_none (method, line 107) def test_htmlpack_missing_or_empty_element_reads_none(self)
    • test_htmlpack_browser_loader_decodes_both_encodings (method, line 112) def test_htmlpack_browser_loader_decodes_both_encodings(self)
    • setUpClass (method, line 144) def setUpClass(cls)
    • tearDownClass (method, line 152) def tearDownClass(cls)
    • test_htmlpack_pages_compress_every_payload_when_forced (method, line 156) def test_htmlpack_pages_compress_every_payload_when_forced(self)
    • test_htmlpack_pages_decode_identical_payloads (method, line 162) def test_htmlpack_pages_decode_identical_payloads(self)
    • test_htmlpack_pages_boot_through_the_shared_loader (method, line 169) def test_htmlpack_pages_boot_through_the_shared_loader(self)
    • test_htmlpack_pages_inline_scripts_are_valid_javascript (method, line 177) def test_htmlpack_pages_inline_scripts_are_valid_javascript(self)
  • Depends on: readmenator/_app.py, readmenator/_config.py, readmenator/_htmlpack.py

tests/test_integration.py

  • Layer: testing
  • Language: py
  • Symbols:
    • TestEndToEndContract (class, line 9) class TestEndToEndContract(TestCase)
    • setUp (method, line 10) def setUp(self)
    • tearDown (method, line 15) def tearDown(self)
    • _write (method, line 19) def _write(self, path, content)
    • test_full_pipeline_generates_knowledge_base (method, line 24) def test_full_pipeline_generates_knowledge_base(self)
    • test_knowledge_base_contains_mermaid (method, line 40) def test_knowledge_base_contains_mermaid(self)
    • test_query_subcommand_works (method, line 48) def test_query_subcommand_works(self)
    • test_explain_subcommand_works (method, line 53) def test_explain_subcommand_works(self)
    • test_path_subcommand_works (method, line 59) def test_path_subcommand_works(self)
    • test_summary_works (method, line 65) def test_summary_works(self)
    • test_rebuild (method, line 71) def test_rebuild(self)
    • test_knowledge_base_contains_cpg (method, line 81) def test_knowledge_base_contains_cpg(self)
    • test_knowledge_base_contains_statistics_dashboard (method, line 89) def test_knowledge_base_contains_statistics_dashboard(self)
    • test_audit_deep_returns_analysis (method, line 98) def test_audit_deep_returns_analysis(self)
    • test_privacy_mode_works (method, line 105) def test_privacy_mode_works(self)
    • test_export_sarif_produces_file (method, line 114) def test_export_sarif_produces_file(self)
  • Depends on: readmenator/_app.py, readmenator/_config.py

tests/test_interactive_graph.py

  • Doc: Contract tests for the interactive explorer modules.
  • Layer: testing
  • Language: py
  • Symbols:
    • _node (function, line 40) def _node(nid, symbols)
    • TestForceGraphContract (class, line 52) class TestForceGraphContract(TestCase)
    • TestScanTextContract (class, line 133) class TestScanTextContract(TestCase)
    • self_nodes (function, line 153) def self_nodes()
    • TestYaraLiteContract (class, line 158) class TestYaraLiteContract(TestCase)
    • TestProvenanceContract (class, line 211) class TestProvenanceContract(TestCase)
    • TestExclusionsContract (class, line 234) class TestExclusionsContract(TestCase)
    • TestAnalyticsContract (class, line 254) class TestAnalyticsContract(TestCase)
    • TestExplorerContract (class, line 275) class TestExplorerContract(TestCase)
    • TestEmbedContract (class, line 290) class TestEmbedContract(TestCase)
    • TestRebuildContract (class, line 317) class TestRebuildContract(TestCase)
    • TestGalleryCardContract (class, line 369) class TestGalleryCardContract(TestCase)
    • TestForceGraphInspectorPayload (class, line 426) class TestForceGraphInspectorPayload(TestCase)
    • _inline_script (function, line 477) def _inline_script(html)
    • _const_json (function, line 486) def _const_json(html, name)
    • TestForceGraphExplorerInteraction (class, line 497) class TestForceGraphExplorerInteraction(TestCase)
    • setUp (method, line 55) def setUp(self)
    • test_family_color_is_deterministic (method, line 61) def test_family_color_is_deterministic(self)
    • test_node_value_dampens_large_files (method, line 66) def test_node_value_dampens_large_files(self)
    • test_build_payload_has_heterogeneous_nodes (method, line 74) def test_build_payload_has_heterogeneous_nodes(self)
    • test_build_payload_maps_communities (method, line 82) def test_build_payload_maps_communities(self)
    • test_render_produces_standalone_html (method, line 94) def test_render_produces_standalone_html(self)
    • test_render_uses_supported_cdn_fallback (method, line 106) def test_render_uses_supported_cdn_fallback(self)
    • test_write_copies_vendor_engine (method, line 112) def test_write_copies_vendor_engine(self)
    • test_exporter_delegates_to_forcegraph (method, line 127) def test_exporter_delegates_to_forcegraph(self)
    • test_build_for_node_includes_sections (method, line 136) def test_build_for_node_includes_sections(self)
    • test_build_corpus_maps_every_node (method, line 146) def test_build_corpus_maps_every_node(self)
    • test_parse_reports_tiers (method, line 184) def test_parse_reports_tiers(self)
    • test_run_matches_any_of_them (method, line 190) def test_run_matches_any_of_them(self)
    • test_run_requires_cooccurrence (method, line 196) def test_run_requires_cooccurrence(self)
    • test_validate_counts_rules (method, line 203) def test_validate_counts_rules(self)
    • test_audit_flags_snippetless_findings (method, line 214) def test_audit_flags_snippetless_findings(self)
    • test_summary_counts_classes (method, line 226) def test_summary_counts_classes(self)
    • test_parse_and_match_glob (method, line 237) def test_parse_and_match_glob(self)
    • test_filter_findings_removes_excluded (method, line 243) def test_filter_findings_removes_excluded(self)
    • test_build_has_all_sections (method, line 257) def test_build_has_all_sections(self)
    • test_build_state_serves_apis (method, line 278) def test_build_state_serves_apis(self)
    • test_near_jaccard_prefers_shared_terms (method, line 293) def test_near_jaccard_prefers_shared_terms(self)
    • test_cluster_groups_similar_files (method, line 304) def test_cluster_groups_similar_files(self)
    • _run_app (method, line 320) def _run_app(self, tmp)
    • test_run_writes_forcegraph_html (method, line 335) def test_run_writes_forcegraph_html(self)
    • test_run_skips_forcegraph_when_disabled (method, line 347) def test_run_skips_forcegraph_when_disabled(self)
    • test_publish_appends_extra_card (method, line 372) def test_publish_appends_extra_card(self)
    • test_export_diagrams_writes_forcegraph_and_card (method, line 399) def test_export_diagrams_writes_forcegraph_and_card(self)
    • setUp (method, line 429) def setUp(self)
    • test_forcegraph_file_nodes_carry_inspector_fields (method, line 441) def test_forcegraph_file_nodes_carry_inspector_fields(self)
    • test_forcegraph_externals_exclude_calls_and_internal_imports (method, line 449) def test_forcegraph_externals_exclude_calls_and_internal_imports(self)
    • test_forcegraph_privacy_mode_strips_docs (method, line 454) def test_forcegraph_privacy_mode_strips_docs(self)
    • test_forcegraph_thumbnail_escapes_colors (method, line 462) def test_forcegraph_thumbnail_escapes_colors(self)
    • test_forcegraph_render_has_inspector_and_layouts (method, line 470) def test_forcegraph_render_has_inspector_and_layouts(self)
    • setUp (method, line 500) def setUp(self)
    • test_explorer_hit_tests_against_live_positions (method, line 514) def test_explorer_hit_tests_against_live_positions(self)
    • test_explorer_3d_draws_flat_glyphs_on_overlay (method, line 519) def test_explorer_3d_draws_flat_glyphs_on_overlay(self)
    • test_explorer_3d_engine_is_pinned (method, line 524) def test_explorer_3d_engine_is_pinned(self)
    • test_explorer_ships_edge_path_and_lens_actions (method, line 530) def test_explorer_ships_edge_path_and_lens_actions(self)
    • test_explorer_settings_come_from_config (method, line 535) def test_explorer_settings_come_from_config(self)
    • test_explorer_structural_edges_use_their_own_colors (method, line 546) def test_explorer_structural_edges_use_their_own_colors(self)
    • test_explorer_placeholders_inside_data_are_left_alone (method, line 553) def test_explorer_placeholders_inside_data_are_left_alone(self)
    • test_explorer_data_cannot_close_the_script (method, line 563) def test_explorer_data_cannot_close_the_script(self)
    • test_explorer_script_is_valid_javascript (method, line 571) def test_explorer_script_is_valid_javascript(self)
  • Depends on: readmenator/_analytics.py, readmenator/_app.py, readmenator/_config.py, readmenator/_diagrams.py, readmenator/_embed.py, readmenator/_exclusions.py, readmenator/_explorer.py, readmenator/_exporter.py, readmenator/_forcegraph.py, readmenator/_htmlpack.py, readmenator/_models.py, readmenator/_provenance.py, readmenator/_scantext.py, readmenator/_yaralite.py

tests/test_layer_rules.py

  • Doc: TestLayerRuleEngineContract: Contract: LayerRuleEngine detects architectural layer violations.
  • Layer: testing
  • Language: py
  • Symbols:
    • TestLayerRuleEngineContract (class, line 10) class TestLayerRuleEngineContract(TestCase)
    • setUp (method, line 13) def setUp(self)
    • _make_node (method, line 17) def _make_node(self, nid, label)
    • test_empty_graph_returns_empty_violations (method, line 20) def test_empty_graph_returns_empty_violations(self)
    • test_no_layers_returns_empty_violations (method, line 24) def test_no_layers_returns_empty_violations(self)
    • test_same_layer_no_violation (method, line 29) def test_same_layer_no_violation(self)
    • test_forbidden_edge_detected (method, line 36) def test_forbidden_edge_detected(self)
    • test_allowed_testing_edges_no_violation (method, line 46) def test_allowed_testing_edges_no_violation(self)
    • test_multiple_violations (method, line 57) def test_multiple_violations(self)
    • test_utility_layer_ignored (method, line 75) def test_utility_layer_ignored(self)
    • test_violation_summary (method, line 82) def test_violation_summary(self)
    • test_resolved_edges_also_checked (method, line 104) def test_resolved_edges_also_checked(self)
    • test_presentation_to_data_access_forbidden (method, line 115) def test_presentation_to_data_access_forbidden(self)
  • Depends on: readmenator/_config.py, readmenator/_layer_rules.py, readmenator/_models.py

tests/test_layout_quality.py

  • Doc: Contract tests for bundle crossing reduction and seeded explorer layouts.
  • Layer: testing
  • Language: py
  • Symbols:
    • _clustered (function, line 23) def _clustered()
    • _chords (function, line 37) def _chords(layout, edges)
    • TestBundleOrdering (class, line 42) class TestBundleOrdering(TestCase)
    • _force_payload_inputs (function, line 100) def _force_payload_inputs()
    • TestSeededExplorer (class, line 116) class TestSeededExplorer(TestCase)
    • test_layout_order_reduces_angular_cost (method, line 45) def test_layout_order_reduces_angular_cost(self)
    • test_layout_order_keeps_members_and_first_group (method, line 50) def test_layout_order_keeps_members_and_first_group(self)
    • test_layout_order_deterministic_and_never_worse (method, line 56) def test_layout_order_deterministic_and_never_worse(self)
    • test_layout_more_sweeps_never_increase_cost (method, line 63) def test_layout_more_sweeps_never_increase_cost(self)
    • test_layout_center_out_puts_hub_mid_arc (method, line 77) def test_layout_center_out_puts_hub_mid_arc(self)
    • test_layout_sphere_refinement_shortens_chords (method, line 82) def test_layout_sphere_refinement_shortens_chords(self)
    • test_layout_sphere_refine_in_bundling_call (method, line 92) def test_layout_sphere_refine_in_bundling_call(self)
    • test_layout_seed_positions_present_and_scaled (method, line 119) def test_layout_seed_positions_present_and_scaled(self)
    • test_layout_seed_deterministic_and_disableable (method, line 132) def test_layout_seed_deterministic_and_disableable(self)
    • test_layout_seed_page_wiring (method, line 142) def test_layout_seed_page_wiring(self)
    • test_layout_bundle_payload_uses_optimized_order (method, line 150) def test_layout_bundle_payload_uses_optimized_order(self)
  • Depends on: readmenator/_bundlegraph.py, readmenator/_config.py, readmenator/_forcegraph.py, readmenator/_forcegraph_page.py, readmenator/_graphlayout.py, readmenator/_models.py

Next: KB_tests_p3.md