Agent KB_tests_p3 - grisuno/LazyOwn GitHub Wiki

Subsystem: tests (page 3 of 17)

Previous: KB_tests_p2.md

tests/test_blacksandbeacon_addon.py

  • Doc: tests/test_blacksandbeacon_addon.py Validation suite for the blacksandbeacon and...
  • Layer: testing
  • Language: py
  • Symbols:
    • _load (function, line 26) def _load(path)
    • beacon (function, line 32) def beacon()
    • bof (function, line 37) def bof()
    • TestBeaconYamlExists (class, line 41) class TestBeaconYamlExists
    • TestBeaconRequiredFields (class, line 55) class TestBeaconRequiredFields
    • TestBeaconToolSection (class, line 67) class TestBeaconToolSection
    • TestBeaconPathSafety (class, line 97) class TestBeaconPathSafety
    • TestBeaconCategory (class, line 111) class TestBeaconCategory
    • TestBeaconEnabled (class, line 119) class TestBeaconEnabled
    • TestBeaconParams (class, line 127) class TestBeaconParams
    • TestBeaconCommandTemplates (class, line 157) class TestBeaconCommandTemplates
    • TestBeaconDescriptionQuality (class, line 192) class TestBeaconDescriptionQuality
    • TestBeaconNoHardcodedSecrets (class, line 217) class TestBeaconNoHardcodedSecrets
    • test_beacon_yaml_present (method, line 42) def test_beacon_yaml_present(self)
    • test_bof_yaml_present (method, line 45) def test_bof_yaml_present(self)
    • test_beacon_yaml_parses (method, line 48) def test_beacon_yaml_parses(self, beacon)
    • test_bof_yaml_parses (method, line 51) def test_bof_yaml_parses(self, bof)
    • test_beacon_has_field (method, line 59) def test_beacon_has_field(self, beacon, field)
    • test_bof_has_field (method, line 63) def test_bof_has_field(self, bof, field)
    • test_beacon_tool_has_key (method, line 71) def test_beacon_tool_has_key(self, beacon, key)
    • test_bof_tool_has_key (method, line 75) def test_bof_tool_has_key(self, bof, key)
    • test_beacon_repo_url (method, line 78) def test_beacon_repo_url(self, beacon)
    • test_bof_repo_url (method, line 81) def test_bof_repo_url(self, bof)
    • test_beacon_install_path (method, line 84) def test_beacon_install_path(self, beacon)
    • test_bof_install_path (method, line 87) def test_bof_install_path(self, bof)
    • test_beacon_install_command_is_make (method, line 90) def test_beacon_install_command_is_make(self, beacon)
    • test_bof_install_command_is_make (method, line 93) def test_bof_install_command_is_make(self, bof)
    • test_beacon_install_path_no_traversal (method, line 100) def test_beacon_install_path_no_traversal(self, beacon)
    • test_bof_install_path_no_traversal (method, line 105) def test_bof_install_path_no_traversal(self, bof)
    • test_beacon_category (method, line 112) def test_beacon_category(self, beacon)
    • test_bof_category (method, line 115) def test_bof_category(self, bof)
    • test_beacon_enabled (method, line 120) def test_beacon_enabled(self, beacon)
    • test_bof_enabled (method, line 123) def test_bof_enabled(self, bof)
    • _param_names (method, line 130) def _param_names(self, addon)
    • test_beacon_has_lhost_param (method, line 133) def test_beacon_has_lhost_param(self, beacon)
    • test_beacon_has_lport_param (method, line 136) def test_beacon_has_lport_param(self, beacon)
    • test_beacon_has_c2_port_param (method, line 139) def test_beacon_has_c2_port_param(self, beacon)
    • test_bof_has_lhost_param (method, line 142) def test_bof_has_lhost_param(self, bof)
    • test_bof_has_lport_param (method, line 145) def test_bof_has_lport_param(self, bof)
    • test_beacon_lhost_required (method, line 148) def test_beacon_lhost_required(self, beacon)
    • test_bof_lhost_required (method, line 152) def test_bof_lhost_required(self, bof)
    • test_beacon_lazycommand_has_lhost (method, line 160) def test_beacon_lazycommand_has_lhost(self, beacon)
    • test_beacon_lazycommand_has_c2_port (method, line 164) def test_beacon_lazycommand_has_c2_port(self, beacon)
    • test_bof_lazycommand_has_lhost (method, line 168) def test_bof_lazycommand_has_lhost(self, bof)
    • test_bof_lazycommand_has_lport (method, line 172) def test_bof_lazycommand_has_lport(self, bof)
    • test_beacon_execute_stages_to_sessions (method, line 176) def test_beacon_execute_stages_to_sessions(self, beacon)
    • test_bof_execute_stages_to_sessions (method, line 180) def test_bof_execute_stages_to_sessions(self, bof)
    • test_beacon_execute_resets_before_pull (method, line 183) def test_beacon_execute_resets_before_pull(self, beacon)
    • test_bof_execute_resets_before_pull (method, line 187) def test_bof_execute_resets_before_pull(self, bof)
    • test_beacon_description_mentions_bof (method, line 195) def test_beacon_description_mentions_bof(self, beacon)
    • test_beacon_description_mentions_linux (method, line 199) def test_beacon_description_mentions_linux(self, beacon)
    • test_bof_description_mentions_linux_bof (method, line 202) def test_bof_description_mentions_linux_bof(self, bof)
    • test_bof_description_mentions_elf (method, line 206) def test_bof_description_mentions_elf(self, bof)
    • test_beacon_name_is_correct (method, line 210) def test_beacon_name_is_correct(self, beacon)
    • test_bof_name_is_correct (method, line 213) def test_bof_name_is_correct(self, bof)
    • _yaml_text (method, line 220) def _yaml_text(self, path)
    • test_beacon_no_hardcoded_ip (method, line 223) def test_beacon_no_hardcoded_ip(self)
    • test_bof_no_hardcoded_ip (method, line 230) def test_bof_no_hardcoded_ip(self)
    • test_beacon_no_hardcoded_port_numbers (method, line 237) def test_beacon_no_hardcoded_port_numbers(self)
    • test_bof_no_hardcoded_port_numbers (method, line 241) def test_bof_no_hardcoded_port_numbers(self)

tests/test_bof_registry.py

  • Doc: Tests for modules/bof_registry.py — BofEntry, BofCatalog, BofRegistry, BofMarketplace...
  • Layer: testing
  • Language: py
  • Symbols:
    • catalog (function, line 37) def catalog()
    • tmp_sessions (function, line 42) def tmp_sessions()
    • TestBofEntry (class, line 47) class TestBofEntry
    • TestBofCatalog (class, line 101) class TestBofCatalog
    • TestBofRegistry (class, line 174) class TestBofRegistry
    • TestBofValidator (class, line 221) class TestBofValidator
    • TestBofMarketplace (class, line 291) class TestBofMarketplace
    • TestBofEnums (class, line 359) class TestBofEnums
    • test_construction_and_properties (method, line 48) def test_construction_and_properties(self)
    • test_immutability (method, line 65) def test_immutability(self)
    • test_to_dict_roundtrip (method, line 70) def test_to_dict_roundtrip(self)
    • test_from_dict_minimal (method, line 91) def test_from_dict_minimal(self)
    • test_register_and_get (method, line 102) def test_register_and_get(self, catalog)
    • test_get_missing_raises_keyerror (method, line 107) def test_get_missing_raises_keyerror(self, catalog)
    • test_search_exact_match (method, line 111) def test_search_exact_match(self, catalog)
    • test_search_by_category (method, line 116) def test_search_by_category(self, catalog)
    • test_search_by_technique (method, line 121) def test_search_by_technique(self, catalog)
    • test_search_empty_query_returns_all (method, line 127) def test_search_empty_query_returns_all(self, catalog)
    • test_list_all_sorted (method, line 131) def test_list_all_sorted(self, catalog)
    • test_list_by_platform (method, line 136) def test_list_by_platform(self, catalog)
    • test_list_by_category (method, line 141) def test_list_by_category(self, catalog)
    • test_save_load_roundtrip (method, line 147) def test_save_load_roundtrip(self, catalog, tmp_sessions)
    • test_load_missing_file_returns_empty (method, line 153) def test_load_missing_file_returns_empty(self, tmp_sessions)
    • test_empty_catalog (method, line 158) def test_empty_catalog(self)
    • test_register_overwrites (method, line 165) def test_register_overwrites(self)
    • test_install_and_check (method, line 175) def test_install_and_check(self, tmp_sessions)
    • test_uninstall (method, line 182) def test_uninstall(self, tmp_sessions)
    • test_uninstall_nonexistent (method, line 189) def test_uninstall_nonexistent(self, tmp_sessions)
    • test_list_installed (method, line 193) def test_list_installed(self, tmp_sessions)
    • test_get_install_info (method, line 201) def test_get_install_info(self, tmp_sessions)
    • test_get_install_info_nonexistent (method, line 209) def test_get_install_info_nonexistent(self, tmp_sessions)
    • test_manifest_persistence (method, line 213) def test_manifest_persistence(self, tmp_sessions)
    • test_verify_with_empty_hash_skips (method, line 222) def test_verify_with_empty_hash_skips(self, tmp_sessions)
    • test_compute_sha256_deterministic (method, line 230) def test_compute_sha256_deterministic(self, tmp_sessions)
    • test_verify_mismatched_hash (method, line 238) def test_verify_mismatched_hash(self, tmp_sessions)
    • test_validate_args_missing_required (method, line 253) def test_validate_args_missing_required(self)
    • test_validate_args_all_present (method, line 266) def test_validate_args_all_present(self)
    • test_validate_args_no_required (method, line 278) def test_validate_args_no_required(self)
    • test_search_enriches_with_install_status (method, line 292) def test_search_enriches_with_install_status(self, tmp_sessions)
    • test_info_returns_catalog_and_install_state (method, line 299) def test_info_returns_catalog_and_install_state(self, tmp_sessions)
    • test_info_missing_bof (method, line 306) def test_info_missing_bof(self)
    • test_install_and_uninstall (method, line 311) def test_install_and_uninstall(self, tmp_sessions)
    • test_install_already_installed (method, line 321) def test_install_already_installed(self, tmp_sessions)
    • test_install_missing_bof (method, line 327) def test_install_missing_bof(self)
    • test_uninstall_missing_bof (method, line 332) def test_uninstall_missing_bof(self, tmp_sessions)
    • test_list_installed_empty_initially (method, line 337) def test_list_installed_empty_initially(self, tmp_sessions)
    • test_list_missing_dependencies (method, line 342) def test_list_missing_dependencies(self, tmp_sessions)
    • test_list_missing_dependencies_unknown_bof (method, line 347) def test_list_missing_dependencies_unknown_bof(self)
    • test_bulk_install (method, line 352) def test_bulk_install(self, tmp_sessions)
    • test_platform_values (method, line 360) def test_platform_values(self)
    • test_category_values (method, line 364) def test_category_values(self)
  • Depends on: modules/bof_registry.py

tests/test_bootstrap_installer.py

  • Doc: Integration tests for the installer scripts (no network, no apt).
  • Layer: testing
  • Language: py
  • Symbols:
    • _run_bootstrap (function, line 29) def _run_bootstrap(args, env, cwd)
    • _git (function, line 44) def _git(args, cwd)
    • test_bootstrap_help_lists_options (function, line 55) def test_bootstrap_help_lists_options()
    • test_bootstrap_rejects_unknown_flag (function, line 63) def test_bootstrap_rejects_unknown_flag()
    • test_bootstrap_rejects_bad_modes (function, line 75) def test_bootstrap_rejects_bad_modes()
    • test_install_pipe_guard (function, line 88) def test_install_pipe_guard(tmp_path)
    • _make_stub_repo (function, line 105) def _make_stub_repo(path)
    • test_existing_checkout_abort_changes_nothing (function, line 118) def test_existing_checkout_abort_changes_nothing(tmp_path)
    • test_debug_flag_traces_execution (function, line 138) def test_debug_flag_traces_execution(tmp_path)
    • test_existing_checkout_update_reinstalls (function, line 153) def test_existing_checkout_update_reinstalls(tmp_path)
    • test_existing_checkout_clean_backs_up_payload (function, line 170) def test_existing_checkout_clean_backs_up_payload(tmp_path)
    • test_non_checkout_path_fails_without_tty (function, line 195) def test_non_checkout_path_fails_without_tty(tmp_path)
    • test_install_uses_supported_pip_flags (function, line 208) def test_install_uses_supported_pip_flags()
    • test_scripts_are_executable_and_clean (function, line 220) def test_scripts_are_executable_and_clean()

tests/test_boyscout_contracts.py

  • Doc: Boy-scout contracts for critical shared surfaces.
  • Layer: testing
  • Language: py
  • Symbols:
    • _bound_import_names (function, line 27) def _bound_import_names(tree)
    • test_lazyown_has_no_unused_imports (function, line 42) def test_lazyown_has_no_unused_imports()
    • _load_mcp_module (function, line 52) def _load_mcp_module()
    • test_playbook_target_is_shell_quoted (function, line 110) def test_playbook_target_is_shell_quoted()
    • test_replace_placeholders_matches_single_pass_engine (function, line 119) def test_replace_placeholders_matches_single_pass_engine()
    • test_replace_placeholders_keeps_brace_values_literal (function, line 133) def test_replace_placeholders_keeps_brace_values_literal()
    • test_deploy_has_no_todo_markers (function, line 141) def test_deploy_has_no_todo_markers()
    • Tool (class, line 66) class Tool
    • TextContent (class, line 73) class TextContent
    • Server (class, line 83) class Server
    • __init__ (method, line 69) def __init__(self)
    • __init__ (method, line 76) def __init__(self)
    • __init__ (method, line 86) def __init__(self)
    • list_tools (method, line 89) def list_tools(self)
    • call_tool (method, line 93) def call_tool(self)
  • Depends on: skills/lazyown_mcp.py, utils.py

tests/test_bridge_catalog_filtered.py

  • Doc: tests/test_bridge_catalog_filtered.py Tests for BridgeDispatcher.catalog_summary_filtered...
  • Layer: testing
  • Language: py
  • Symbols:
    • dispatcher (function, line 26) def dispatcher()
    • TestCatalogSummaryFiltered (class, line 32) class TestCatalogSummaryFiltered
    • TestBridgeCatalogToolFunction (class, line 111) class TestBridgeCatalogToolFunction
    • test_no_args_matches_unfiltered_summary (method, line 33) def test_no_args_matches_unfiltered_summary(self, dispatcher)
    • test_phase_arg_restricts_to_one_phase (method, line 38) def test_phase_arg_restricts_to_one_phase(self, dispatcher)
    • test_phase_arg_accepts_world_model_alias (method, line 43) def test_phase_arg_accepts_world_model_alias(self, dispatcher)
    • _entries_for (method, line 48) def _entries_for(self, dispatcher, phase, command_name)
    • test_os_hint_linux_excludes_windows_only_entries (method, line 51) def test_os_hint_linux_excludes_windows_only_entries(self, dispatcher)
    • test_os_hint_windows_excludes_linux_only_entries (method, line 61) def test_os_hint_windows_excludes_linux_only_entries(self, dispatcher)
    • test_os_filter_shrinks_or_preserves_each_phase (method, line 71) def test_os_filter_shrinks_or_preserves_each_phase(self, dispatcher)
    • test_phase_plus_os_combines_both_filters (method, line 81) def test_phase_plus_os_combines_both_filters(self, dispatcher)
    • test_empty_phase_keeps_all_phases (method, line 89) def test_empty_phase_keeps_all_phases(self, dispatcher)
    • test_phase_drops_smaller_than_unfiltered_total (method, line 94) def test_phase_drops_smaller_than_unfiltered_total(self, dispatcher)
    • test_os_hint_any_is_passthrough (method, line 100) def test_os_hint_any_is_passthrough(self, dispatcher)
    • test_os_hint_uppercase_normalized (method, line 105) def test_os_hint_uppercase_normalized(self, dispatcher)
    • test_no_args_returns_full_catalog_header (method, line 112) def test_no_args_returns_full_catalog_header(self)
    • test_phase_arg_appears_in_header (method, line 120) def test_phase_arg_appears_in_header(self)
    • test_os_hint_only_appears_in_header (method, line 127) def test_os_hint_only_appears_in_header(self)
    • test_unknown_phase_returns_friendly_no_match (method, line 134) def test_unknown_phase_returns_friendly_no_match(self)
    • test_registry_exposes_optional_phase_and_os (method, line 140) def test_registry_exposes_optional_phase_and_os(self)
  • Depends on: modules/lazyown_bridge.py, skills/lazyown_groq_agents.py

tests/test_c2_agent.py

  • Doc: Malleable C2 agent: template safety, key ownership, record reading.
  • Layer: testing
  • Language: py
  • Symbols:
    • test_client_id_derivation (function, line 17) def test_client_id_derivation()
    • test_template_renders_without_tokens (function, line 29) def test_template_renders_without_tokens()
    • test_template_rejects_bad_inputs (function, line 37) def test_template_rejects_bad_inputs()
    • test_template_is_py25_safe (function, line 51) def test_template_is_py25_safe()
    • test_template_drops_inherited_fds (function, line 60) def test_template_drops_inherited_fds()
    • test_key_never_generated_silently (function, line 68) def test_key_never_generated_silently(tmp_path, monkeypatch)
    • test_key_snapshot_roundtrip (function, line 79) def test_key_snapshot_roundtrip(tmp_path, monkeypatch)
    • test_read_records_newest_last (function, line 91) def test_read_records_newest_last(tmp_path, monkeypatch)
    • test_c2_addon_contract (function, line 104) def test_c2_addon_contract()
    • test_credentials_file_sync_writes_live_creds (function, line 117) def test_credentials_file_sync_writes_live_creds(tmp_path)
    • test_shell_sync_runs_after_params_exist (function, line 136) def test_shell_sync_runs_after_params_exist()
    • test_shell_sync_adopts_file_creds (function, line 148) def test_shell_sync_adopts_file_creds(tmp_path, monkeypatch)
    • test_sync_refuses_keyless_payload (function, line 172) def test_sync_refuses_keyless_payload(tmp_path, monkeypatch)
    • test_c2_session_commands_are_non_interactive (function, line 194) def test_c2_session_commands_are_non_interactive()
    • test_c2_reboot_registered (function, line 207) def test_c2_reboot_registered()
    • test_fresh_lab_creds_rotate_and_shape (function, line 216) def test_fresh_lab_creds_rotate_and_shape()
    • _Stub (class, line 156) class _Stub
    • _Stub (class, line 179) class _Stub
    • __init__ (method, line 160) def __init__(self)
    • __init__ (method, line 183) def __init__(self)
  • Depends on: lazyown.py, modules/__init__.py

tests/test_c2_profile_engine.py

  • Doc: Tests for modules/c2_profile_engine.py — TlsProfile, DnsProfile, SmbProfile, WebSocketProfile...
  • Layer: testing
  • Language: py
  • Symbols:
    • TestTlsProfile (class, line 34) class TestTlsProfile
    • TestDnsProfile (class, line 99) class TestDnsProfile
    • TestSmbProfile (class, line 154) class TestSmbProfile
    • TestWebSocketProfile (class, line 183) class TestWebSocketProfile
    • TestProfileRotator (class, line 214) class TestProfileRotator
    • TestProfileValidator (class, line 291) class TestProfileValidator
    • TestProfileEngine (class, line 397) class TestProfileEngine
    • test_default_construction (method, line 35) def test_default_construction(self)
    • test_get_cipher_suites_returns_library_defaults (method, line 44) def test_get_cipher_suites_returns_library_defaults(self)
    • test_get_cipher_suites_returns_custom_when_set (method, line 50) def test_get_cipher_suites_returns_custom_when_set(self)
    • test_get_cipher_suites_unknown_library_falls_back_to_generic (method, line 55) def test_get_cipher_suites_unknown_library_falls_back_to_generic(self)
    • test_get_ja3_hash_produces_stable_output (method, line 61) def test_get_ja3_hash_produces_stable_output(self)
    • test_get_ja3_hash_with_grease_produces_variable_output (method, line 72) def test_get_ja3_hash_with_grease_produces_variable_output(self)
    • test_serialization_roundtrip (method, line 77) def test_serialization_roundtrip(self)
    • test_from_dict_empty (method, line 90) def test_from_dict_empty(self)
    • test_disabled_profile (method, line 94) def test_disabled_profile(self)
    • test_default_construction (method, line 100) def test_default_construction(self)
    • test_build_query_subdomain_base64 (method, line 107) def test_build_query_subdomain_base64(self)
    • test_build_query_subdomain_base32 (method, line 113) def test_build_query_subdomain_base32(self)
    • test_build_query_subdomain_hex (method, line 119) def test_build_query_subdomain_hex(self)
    • test_build_query_subdomain_truncates_to_max_length (method, line 124) def test_build_query_subdomain_truncates_to_max_length(self)
    • test_build_query_subdomain_ttl_cache_bypass_disabled (method, line 130) def test_build_query_subdomain_ttl_cache_bypass_disabled(self)
    • test_serialization_roundtrip (method, line 135) def test_serialization_roundtrip(self)
    • test_from_dict_empty (method, line 148) def test_from_dict_empty(self)
    • test_default_construction (method, line 155) def test_default_construction(self)
    • test_serialization_roundtrip (method, line 161) def test_serialization_roundtrip(self)
    • test_from_dict_empty (method, line 178) def test_from_dict_empty(self)
    • test_default_construction (method, line 184) def test_default_construction(self)
    • test_serialization_roundtrip (method, line 191) def test_serialization_roundtrip(self)
    • test_from_dict_empty (method, line 208) def test_from_dict_empty(self)
    • test_requires_at_least_one_slot (method, line 215) def test_requires_at_least_one_slot(self)
    • test_single_slot_always_active (method, line 219) def test_single_slot_always_active(self)
    • test_rotation_cycles_through_slots (method, line 226) def test_rotation_cycles_through_slots(self)
    • test_rotation_skips_cooldown_slots (method, line 238) def test_rotation_skips_cooldown_slots(self)
    • test_rotation_resets_all_cooldowns_when_all_busy (method, line 252) def test_rotation_resets_all_cooldowns_when_all_busy(self)
    • test_list_slots (method, line 263) def test_list_slots(self)
    • test_is_available_fresh_slot (method, line 274) def test_is_available_fresh_slot(self)
    • test_is_available_after_touch (method, line 278) def test_is_available_after_touch(self)
    • test_current_slot_identity (method, line 283) def test_current_slot_identity(self)
    • test_validate_tls_valid (method, line 292) def test_validate_tls_valid(self)
    • test_validate_tls_disabled_skips (method, line 297) def test_validate_tls_disabled_skips(self)
    • test_validate_tls_invalid_version (method, line 302) def test_validate_tls_invalid_version(self)
    • test_validate_tls_missing_key_with_cert (method, line 308) def test_validate_tls_missing_key_with_cert(self)
    • test_validate_tls_unknown_library (method, line 318) def test_validate_tls_unknown_library(self)
    • test_validate_dns_enabled_missing_domain (method, line 327) def test_validate_dns_enabled_missing_domain(self)
    • test_validate_dns_invalid_encoding (method, line 333) def test_validate_dns_invalid_encoding(self)
    • test_validate_dns_disabled_skips (method, line 339) def test_validate_dns_disabled_skips(self)
    • test_validate_dns_invalid_domain_format (method, line 344) def test_validate_dns_invalid_domain_format(self)
    • test_validate_smb_missing_pipe_name (method, line 350) def test_validate_smb_missing_pipe_name(self)
    • test_validate_smb_disabled_skips (method, line 356) def test_validate_smb_disabled_skips(self)
    • test_validate_smb_username_without_domain (method, line 361) def test_validate_smb_username_without_domain(self)
    • test_validate_websocket_invalid_protocol (method, line 372) def test_validate_websocket_invalid_protocol(self)
    • test_validate_websocket_disabled_skips (method, line 378) def test_validate_websocket_disabled_skips(self)
    • test_validate_all_returns_dict (method, line 383) def test_validate_all_returns_dict(self)
    • test_default_engine_has_http_slot (method, line 398) def test_default_engine_has_http_slot(self)
    • test_engine_with_all_transports (method, line 402) def test_engine_with_all_transports(self)
    • test_engine_validate_returns_errors_for_invalid_dns (method, line 412) def test_engine_validate_returns_errors_for_invalid_dns(self)
    • test_engine_rotate_through_transports (method, line 420) def test_engine_rotate_through_transports(self)
    • test_engine_get_active_profile_dict (method, line 427) def test_engine_get_active_profile_dict(self)
    • test_engine_get_all_profiles_dict (method, line 433) def test_engine_get_all_profiles_dict(self)
    • test_engine_from_dict (method, line 442) def test_engine_from_dict(self)
    • test_engine_from_payload (method, line 455) def test_engine_from_payload(self)
    • test_engine_empty_payload_falls_back_to_defaults (method, line 465) def test_engine_empty_payload_falls_back_to_defaults(self)
  • Depends on: modules/c2_profile_engine.py

tests/test_c2_route_auth.py

  • Doc: Guard the C2 route-level auth boundaries.
  • Layer: testing
  • Language: py
  • Symbols:
    • _route_decorators (function, line 75) def _route_decorators()
    • routes (function, line 106) def routes()
    • test_protected_endpoints_require_auth (function, line 110) def test_protected_endpoints_require_auth(routes)
    • test_public_endpoints_stay_open (function, line 115) def test_public_endpoints_stay_open(routes)
    • test_all_protected_endpoints_exist (function, line 120) def test_all_protected_endpoints_exist(routes)

tests/test_c2_shell_lazy.py

  • Doc: The C2 must not build the CLI shell at module load.
  • Layer: testing
  • Language: py
  • Symbols:
    • _module_tree (function, line 21) def _module_tree()
    • _load_proxy_class (function, line 25) def _load_proxy_class()
    • TestNoEagerCliBuild (class, line 62) class TestNoEagerCliBuild
    • TestLazyShellProxy (class, line 103) class TestLazyShellProxy
    • _FakeShell (class, line 40) class _FakeShell
    • _init_shell (function, line 51) def _init_shell()
    • test_no_lazyown_import_at_top_level (method, line 63) def test_no_lazyown_import_at_top_level(self)
    • test_no_eager_shell_build (method, line 76) def test_no_eager_shell_build(self)
    • test_lazy_accessor_with_boot_sequence (method, line 88) def test_lazy_accessor_with_boot_sequence(self)
    • test_reads_forward_and_share_target (method, line 104) def test_reads_forward_and_share_target(self)
    • test_writes_forward (method, line 111) def test_writes_forward(self)
    • test_shell_output_attribute (method, line 118) def test_shell_output_attribute(self)
    • __init__ (method, line 41) def __init__(self)
    • one_cmd (method, line 45) def one_cmd(self, command)

tests/test_c2_surfaces.py

  • Doc: C2 dashboard surfaces fed by the autonomous loop and APT chains.
  • Layer: testing
  • Language: py
  • Symbols:
    • _sandbox (function, line 23) def _sandbox(tmp_path)
    • test_publish_banner_dedupes (function, line 30) def test_publish_banner_dedupes(tmp_path)
    • test_publish_cve_validates_and_dedupes (function, line 42) def test_publish_cve_validates_and_dedupes(tmp_path)
    • test_append_note_never_clobbers (function, line 56) def test_append_note_never_clobbers(tmp_path)
    • test_register_loot_event_dedupes_and_rejects_traversal (function, line 66) def test_register_loot_event_dedupes_and_rejects_traversal(tmp_path)
    • test_group_tasks_unique_hits (function, line 77) def test_group_tasks_unique_hits(tmp_path)
    • test_record_outcome_feeds_c2_surfaces (function, line 95) def test_record_outcome_feeds_c2_surfaces(tmp_path, monkeypatch)
    • test_lazyreport_errors_are_actionable (function, line 122) def test_lazyreport_errors_are_actionable(monkeypatch)
    • _StubWM (class, line 103) class _StubWM
    • _refused (function, line 132) def _refused()
    • _slow (function, line 141) def _slow()
    • update_from_findings (method, line 104) def update_from_findings(self, findings)
  • Depends on: contrib/legacy/lazydeepseekcli.py, modules/atomic_exploit_bridge.py, modules/c2_surfaces.py

tests/test_campaign_import_safety.py

  • Doc: Campaign import trust boundaries hold against hostile packages.
  • Layer: testing
  • Language: py
  • Symbols:
    • _make_evil_zip (function, line 27) def _make_evil_zip(path)
    • TestZipSlip (class, line 35) class TestZipSlip
    • TestColumnFiltering (class, line 55) class TestColumnFiltering
    • TestCopyTree (class, line 80) class TestCopyTree
    • TestCampaignRoutesThroughHelpers (class, line 96) class TestCampaignRoutesThroughHelpers
    • test_evil_members_skipped (method, line 36) def test_evil_members_skipped(self, tmp_path)
    • test_legit_tree_extracted (method, line 46) def test_legit_tree_extracted(self, tmp_path)
    • test_identifier_policy (method, line 56) def test_identifier_policy(self)
    • test_unknown_and_hostile_dropped (method, line 62) def test_unknown_and_hostile_dropped(self)
    • test_order_preserved (method, line 67) def test_order_preserved(self)
    • test_filtered_insert_roundtrip (method, line 70) def test_filtered_insert_roundtrip(self, tmp_path)
    • test_symlinks_not_followed (method, line 81) def test_symlinks_not_followed(self, tmp_path)
    • test_no_raw_extractall_on_import (method, line 97) def test_no_raw_extractall_on_import(self)
    • test_uses_safe_helpers (method, line 108) def test_uses_safe_helpers(self)
  • Depends on: core/safe_import.py

tests/test_categories.py

  • Doc: Tests for modules/categories.py — category constants and look-up tables.
  • Layer: testing
  • Language: py
  • Symbols:
    • TestCategoryConstants (class, line 28) class TestCategoryConstants
    • TestShortToCategory (class, line 78) class TestShortToCategory
    • TestCategoryToShort (class, line 128) class TestCategoryToShort
    • TestAllCategories (class, line 154) class TestAllCategories
    • TestBijectionInvariant (class, line 172) class TestBijectionInvariant
    • test_all_recon_values (method, line 29) def test_all_recon_values(self)
    • test_all_scanning_values (method, line 32) def test_all_scanning_values(self)
    • test_all_exploitation_values (method, line 35) def test_all_exploitation_values(self)
    • test_all_post_exploitation_values (method, line 38) def test_all_post_exploitation_values(self)
    • test_all_persistence_values (method, line 41) def test_all_persistence_values(self)
    • test_all_privesc_values (method, line 44) def test_all_privesc_values(self)
    • test_all_cred_access_values (method, line 47) def test_all_cred_access_values(self)
    • test_all_lateral_values (method, line 50) def test_all_lateral_values(self)
    • test_all_exfil_values (method, line 53) def test_all_exfil_values(self)
    • test_all_c2_values (method, line 56) def test_all_c2_values(self)
    • test_all_reporting_values (method, line 59) def test_all_reporting_values(self)
    • test_all_misc_values (method, line 62) def test_all_misc_values(self)
    • test_all_lua_values (method, line 65) def test_all_lua_values(self)
    • test_all_ai_values (method, line 68) def test_all_ai_values(self)
    • test_all_cloud_values (method, line 71) def test_all_cloud_values(self)
    • test_all_container_values (method, line 74) def test_all_container_values(self)
    • test_recon_to_category (method, line 79) def test_recon_to_category(self)
    • test_scanning_to_category (method, line 82) def test_scanning_to_category(self)
    • test_enum_to_scanning_category (method, line 85) def test_enum_to_scanning_category(self)
    • test_exploit_to_category (method, line 88) def test_exploit_to_category(self)
    • test_post_to_category (method, line 91) def test_post_to_category(self)
    • test_persistence_to_category (method, line 94) def test_persistence_to_category(self)
    • test_privesc_to_category (method, line 97) def test_privesc_to_category(self)
    • test_credential_to_category (method, line 100) def test_credential_to_category(self)
    • test_lateral_to_category (method, line 103) def test_lateral_to_category(self)
    • test_exfil_to_category (method, line 106) def test_exfil_to_category(self)
    • test_c2_to_category (method, line 109) def test_c2_to_category(self)
    • test_reporting_to_category (method, line 112) def test_reporting_to_category(self)
    • test_misc_to_category (method, line 115) def test_misc_to_category(self)
    • test_ai_to_category (method, line 118) def test_ai_to_category(self)
    • test_unknown_short_name_raises_key_error (method, line 121) def test_unknown_short_name_raises_key_error(self)
    • test_recon_reverse_lookup (method, line 129) def test_recon_reverse_lookup(self)
    • test_exploitation_reverse_lookup (method, line 132) def test_exploitation_reverse_lookup(self)
    • test_privesc_reverse_lookup (method, line 135) def test_privesc_reverse_lookup(self)
    • test_c2_reverse_lookup (method, line 138) def test_c2_reverse_lookup(self)
    • test_reverse_lookup_roundtrip (method, line 141) def test_reverse_lookup_roundtrip(self)
    • test_reverse_lookup_less_than_or_equal_forward (method, line 150) def test_reverse_lookup_less_than_or_equal_forward(self)
    • test_every_short_key_in_all_categories (method, line 155) def test_every_short_key_in_all_categories(self)
    • test_all_categories_non_empty (method, line 161) def test_all_categories_non_empty(self)
    • test_no_duplicate_all_categories (method, line 165) def test_no_duplicate_all_categories(self)
    • test_all_categories_count (method, line 168) def test_all_categories_count(self)
    • test_forward_and_reverse_match (method, line 173) def test_forward_and_reverse_match(self)
  • Depends on: modules/categories.py

tests/test_chain_mode.py

  • Doc: Tests for cli/chain_mode.py.
  • Layer: testing
  • Language: py
  • Symbols:
    • _Step (class, line 36) class _Step
    • _resolver (function, line 45) def _resolver()
    • _engine (function, line 52) def _engine(resolver)
    • test_suggestion_from_step_and_string (function, line 85) def test_suggestion_from_step_and_string()
    • test_step_none_when_disabled (function, line 90) def test_step_none_when_disabled()
    • test_step_none_when_not_interactive (function, line 95) def test_step_none_when_not_interactive()
    • test_step_none_for_skip_verbs (function, line 101) def test_step_none_for_skip_verbs(verb)
    • test_enter_runs_top_suggestion (function, line 106) def test_enter_runs_top_suggestion()
    • test_number_selects_ranked_alternative (function, line 116) def test_number_selects_ranked_alternative()
    • test_override_runs_operator_command (function, line 126) def test_override_runs_operator_command()
    • test_skip_keeps_chain_mode_enabled (function, line 136) def test_skip_keeps_chain_mode_enabled()
    • test_exit_words_disable_chain_mode (function, line 144) def test_exit_words_disable_chain_mode(word)
    • test_no_suggestions_enter_skips_custom_command_runs (function, line 151) def test_no_suggestions_enter_skips_custom_command_runs()
    • test_invalid_number_re_prompts_then_skips (function, line 160) def test_invalid_number_re_prompts_then_skips()
    • test_invalid_number_re_prompts_then_accepts_valid_pick (function, line 168) def test_invalid_number_re_prompts_then_accepts_valid_pick()
    • test_keyboard_interrupt_disables (function, line 178) def test_keyboard_interrupt_disables(tmp_path)
    • test_auto_pause_after_max_steps (function, line 195) def test_auto_pause_after_max_steps(tmp_path)
    • test_resolver_failure_degrades_to_no_suggestions (function, line 211) def test_resolver_failure_degrades_to_no_suggestions()
    • test_store_roundtrip_and_missing (function, line 221) def test_store_roundtrip_and_missing(tmp_path)
    • test_store_survives_malformed_file (function, line 230) def test_store_survives_malformed_file(tmp_path)
    • test_engine_reads_persisted_state (function, line 239) def test_engine_reads_persisted_state(tmp_path)
    • test_persist_toggle_writes_state_file (function, line 252) def test_persist_toggle_writes_state_file(tmp_path)
    • test_prompt_exit_words_persist_off (function, line 267) def test_prompt_exit_words_persist_off(tmp_path)
    • __init__ (method, line 39) def __init__(self, name, source, reason)
    • resolve (function, line 46) def resolve(cmd, phase)
    • fake_input (function, line 63) def fake_input(prompt)
    • raise_ki (function, line 179) def raise_ki(prompt)
    • broken (function, line 212) def broken(cmd, phase)
  • Depends on: cli/chain_mode.py

tests/test_chain_registry.py

  • Doc: Chain registry: orchestration from chains/*.yaml, never hardcoded steps.
  • Layer: testing
  • Language: py
  • Symbols:
    • test_shipped_chain_loads (function, line 18) def test_shipped_chain_loads()
    • test_validate_rejects_bad_chains (function, line 33) def test_validate_rejects_bad_chains()
    • test_resolve_substitutes_and_skips (function, line 43) def test_resolve_substitutes_and_skips(tmp_path, monkeypatch)
    • test_resolve_flags_unresolved_tokens (function, line 65) def test_resolve_flags_unresolved_tokens()
    • test_chain_yaml_matches_skill_contract (function, line 73) def test_chain_yaml_matches_skill_contract()
    • test_extends_inherits_steps_and_merges_defaults (function, line 80) def test_extends_inherits_steps_and_merges_defaults(tmp_path)
    • test_extends_cycle_and_unknown_parent_rejected (function, line 110) def test_extends_cycle_and_unknown_parent_rejected(tmp_path)
    • test_disabled_chains_skip_but_stay_visible (function, line 124) def test_disabled_chains_skip_but_stay_visible(tmp_path)
    • test_generate_for_playbook_roundtrip (function, line 143) def test_generate_for_playbook_roundtrip(tmp_path)
  • Depends on: modules/chain_registry.py

tests/test_ci_strict.py

  • Doc: Contract tests for the strict CI workflow.
  • Layer: testing
  • Language: py
  • Symbols:
    • test_strict_workflow_exists (function, line 21) def test_strict_workflow_exists()
    • test_strict_workflow_contains_no_swallow_flags (function, line 26) def test_strict_workflow_contains_no_swallow_flags()
    • test_strict_workflow_runs_lint (function, line 38) def test_strict_workflow_runs_lint()
    • test_strict_workflow_runs_type_check (function, line 44) def test_strict_workflow_runs_type_check()
    • test_strict_workflow_runs_security_scan (function, line 50) def test_strict_workflow_runs_security_scan()
    • test_strict_workflow_runs_pytest (function, line 56) def test_strict_workflow_runs_pytest()
    • test_strict_workflow_targets_main_branch (function, line 62) def test_strict_workflow_targets_main_branch()
    • test_old_swallow_workflow_is_removed (function, line 68) def test_old_swallow_workflow_is_removed()
    • test_ci_workflow_has_no_swallowed_quality_gate (function, line 83) def test_ci_workflow_has_no_swallowed_quality_gate()
    • test_ci_workflow_gates_severity_and_types (function, line 91) def test_ci_workflow_gates_severity_and_types()

tests/test_claudemd_consistency.py

  • Doc: Guard against drift between CLAUDE.md numeric claims and reality.
  • Layer: testing
  • Language: py
  • Symbols:
    • claude_md_text (function, line 22) def claude_md_text()
    • test_claude_md_reports_actual_test_file_count (function, line 28) def test_claude_md_reports_actual_test_file_count(claude_md_text)
    • test_claude_md_does_not_reference_deduplicated_config (function, line 41) def test_claude_md_does_not_reference_deduplicated_config(claude_md_text)

Next: KB_tests_p4.md