Agent SYMBOLS_p38 - grisuno/LazyOwn GitHub Wiki
Symbols (page 38 of 41)
Previous: SYMBOLS_p37.md
| Symbol | Kind | File:Line | Signature |
|---|---|---|---|
test_format_python |
method | tests/test_payload_factory.py:144 |
def test_format_python(self) |
test_format_raw |
method | tests/test_payload_factory.py:118 |
def test_format_raw(self) |
test_formats_list |
method | tests/test_payload_factory.py:173 |
def test_formats_list(self) |
test_generate_native_payload |
method | tests/test_payload_factory.py:99 |
def test_generate_native_payload(self) |
test_generates_powershell |
method | tests/test_payload_factory.py:65 |
def test_generates_powershell(self) |
test_get_existing_payload |
method | tests/test_payload_factory.py:89 |
def test_get_existing_payload(self) |
test_get_nonexistent_returns_none |
method | tests/test_payload_factory.py:95 |
def test_get_nonexistent_returns_none(self) |
test_list_all |
method | tests/test_payload_factory.py:75 |
def test_list_all(self) |
test_list_filter_by_platform |
method | tests/test_payload_factory.py:82 |
def test_list_filter_by_platform(self) |
test_list_formats |
method | tests/test_payload_factory.py:150 |
def test_list_formats(self) |
test_multiple_payloads_aligned |
method | tests/test_payload_factory.py:182 |
def test_multiple_payloads_aligned(self) |
test_nc_shell |
method | tests/test_payload_factory.py:47 |
def test_nc_shell(self) |
test_python_shell |
method | tests/test_payload_factory.py:52 |
def test_python_shell(self) |
test_register_custom |
method | tests/test_payload_factory.py:106 |
def test_register_custom(self) |
test_unknown_shell_type_falls_back_to_bash |
method | tests/test_payload_factory.py:58 |
def test_unknown_shell_type_falls_back_to_bash(self) |
TestAssignIntegration |
class | tests/test_payload_schema.py:235 |
class TestAssignIntegration |
TestCoerceValue |
class | tests/test_payload_schema.py:133 |
class TestCoerceValue |
TestFieldFor |
class | tests/test_payload_schema.py:191 |
class TestFieldFor |
TestFormatIssue |
class | tests/test_payload_schema.py:201 |
class TestFormatIssue |
TestLlmBackendSchema |
class | tests/test_payload_schema.py:275 |
class TestLlmBackendSchema |
TestSchemaShape |
class | tests/test_payload_schema.py:41 |
class TestSchemaShape |
TestValidatePayload |
class | tests/test_payload_schema.py:162 |
class TestValidatePayload |
TestValidateValue |
class | tests/test_payload_schema.py:72 |
class TestValidateValue |
test_allowed_values_enforced |
method | tests/test_payload_schema.py:121 |
def test_allowed_values_enforced(self) |
test_apply_assign_coerces_port_strings |
method | tests/test_payload_schema.py:236 |
def test_apply_assign_coerces_port_strings(self) |
test_apply_assign_keeps_unknown_key_behavior |
method | tests/test_payload_schema.py:267 |
def test_apply_assign_keeps_unknown_key_behavior(self) |
test_apply_assign_no_issue_for_valid_value |
method | tests/test_payload_schema.py:259 |
def test_apply_assign_no_issue_for_valid_value(self) |
test_apply_assign_surfaces_issue_for_bad_ip |
method | tests/test_payload_schema.py:244 |
def test_apply_assign_surfaces_issue_for_bad_ip(self) |
test_bool_falsy_strings |
method | tests/test_payload_schema.py:147 |
def test_bool_falsy_strings(self) |
test_bool_passthrough |
method | tests/test_payload_schema.py:151 |
def test_bool_passthrough(self) |
test_bool_truthy_strings |
method | tests/test_payload_schema.py:143 |
def test_bool_truthy_strings(self) |
test_categories_split_schema |
method | tests/test_payload_schema.py:65 |
def test_categories_split_schema(self) |
test_default_payload_passes |
method | tests/test_payload_schema.py:163 |
def test_default_payload_passes(self) |
test_every_spec_has_required_fields |
method | tests/test_payload_schema.py:45 |
def test_every_spec_has_required_fields(self) |
test_hex_validates |
method | tests/test_payload_schema.py:117 |
def test_hex_validates(self) |
test_hide_code_range |
method | tests/test_payload_schema.py:127 |
def test_hide_code_range(self) |
test_invalid_ip_returns_error |
method | tests/test_payload_schema.py:89 |
def test_invalid_ip_returns_error(self) |
test_ip_string_unchanged |
method | tests/test_payload_schema.py:158 |
def test_ip_string_unchanged(self) |
test_llm_backend_accepts_supported |
method | tests/test_payload_schema.py:293 |
def test_llm_backend_accepts_supported(self) |
test_llm_backend_enum_validated |
method | tests/test_payload_schema.py:276 |
def test_llm_backend_enum_validated(self) |
test_llm_backend_rejects_unknown |
method | tests/test_payload_schema.py:290 |
def test_llm_backend_rejects_unknown(self) |
test_long_values_truncated |
method | tests/test_payload_schema.py:223 |
def test_long_values_truncated(self) |
test_missing_required_field_reports_error |
method | tests/test_payload_schema.py:168 |
def test_missing_required_field_reports_error(self) |
test_model_slots_registered_with_factory_defaults |
method | tests/test_payload_schema.py:300 |
def test_model_slots_registered_with_factory_defaults(self) |
test_negative_port_warns |
method | tests/test_payload_schema.py:102 |
def test_negative_port_warns(self) |
test_non_sensitive_values_shown |
method | tests/test_payload_schema.py:213 |
def test_non_sensitive_values_shown(self) |
test_ollama_host_registered |
method | tests/test_payload_schema.py:320 |
def test_ollama_host_registered(self) |
test_optional_missing_returns_none |
method | tests/test_payload_schema.py:82 |
def test_optional_missing_returns_none(self) |
test_os_id_must_be_1_or_2 |
method | tests/test_payload_schema.py:106 |
def test_os_id_must_be_1_or_2(self) |
test_port_int_passthrough |
method | tests/test_payload_schema.py:137 |
def test_port_int_passthrough(self) |
test_port_non_numeric_passthrough |
method | tests/test_payload_schema.py:140 |
def test_port_non_numeric_passthrough(self) |
test_port_out_of_range_is_warning |
method | tests/test_payload_schema.py:98 |
def test_port_out_of_range_is_warning(self) |
test_port_string_is_accepted |
method | tests/test_payload_schema.py:95 |
def test_port_string_is_accepted(self) |
test_port_string_to_int |
method | tests/test_payload_schema.py:134 |
def test_port_string_to_int(self) |
test_provider_key_slots_sensitive |
method | tests/test_payload_schema.py:314 |
def test_provider_key_slots_sensitive(self) |
test_required_fields_are_documented |
method | tests/test_payload_schema.py:53 |
def test_required_fields_are_documented(self) |
test_required_missing_returns_error |
method | tests/test_payload_schema.py:78 |
def test_required_missing_returns_error(self) |
test_returns_none_for_unknown_key |
method | tests/test_payload_schema.py:197 |
def test_returns_none_for_unknown_key(self) |
test_returns_spec_for_known_key |
method | tests/test_payload_schema.py:192 |
def test_returns_spec_for_known_key(self) |
test_schema_is_not_empty |
method | tests/test_payload_schema.py:42 |
def test_schema_is_not_empty(self) |
test_sensitive_values_redacted |
method | tests/test_payload_schema.py:202 |
def test_sensitive_values_redacted(self) |
test_shipped_payload_has_no_errors |
method | tests/test_payload_schema.py:182 |
def test_shipped_payload_has_no_errors(self) |
test_shipped_payload_keys_are_all_in_schema |
method | tests/test_payload_schema.py:57 |
def test_shipped_payload_keys_are_all_in_schema(self) |
test_unknown_key_in_payload_is_info |
method | tests/test_payload_schema.py:175 |
def test_unknown_key_in_payload_is_info(self) |
test_unknown_key_passthrough |
method | tests/test_payload_schema.py:155 |
def test_unknown_key_passthrough(self) |
test_unknown_key_returns_info |
method | tests/test_payload_schema.py:73 |
def test_unknown_key_returns_info(self) |
test_url_validates |
method | tests/test_payload_schema.py:112 |
def test_url_validates(self) |
test_valid_ip_passes |
method | tests/test_payload_schema.py:86 |
def test_valid_ip_passes(self) |
TestConsumePolicyFacts |
class | tests/test_phase1_data_gaps.py:265 |
class TestConsumePolicyFacts |
TestCredentialAwareRetry |
class | tests/test_phase1_data_gaps.py:490 |
class TestCredentialAwareRetry |
TestEmailAndDomainEntries |
class | tests/test_phase1_data_gaps.py:158 |
class TestEmailAndDomainEntries |
TestEmailExtractor |
class | tests/test_phase1_data_gaps.py:103 |
class TestEmailExtractor |
TestFindingMetadata |
class | tests/test_phase1_data_gaps.py:56 |
class TestFindingMetadata |
TestFullDataFlow |
class | tests/test_phase1_data_gaps.py:562 |
class TestFullDataFlow |
TestGraphTopologySignal |
class | tests/test_phase1_data_gaps.py:376 |
class TestGraphTopologySignal |
TestObsParserIncludesEmailExtractor |
class | tests/test_phase1_data_gaps.py:130 |
class TestObsParserIncludesEmailExtractor |
TestServiceVersionExtractor |
class | tests/test_phase1_data_gaps.py:72 |
class TestServiceVersionExtractor |
TestUpdateFromFindings |
class | tests/test_phase1_data_gaps.py:198 |
class TestUpdateFromFindings |
TestWorldModelEmailDomain |
class | tests/test_phase1_data_gaps.py:174 |
class TestWorldModelEmailDomain |
TestWorldModelPersistence |
class | tests/test_phase1_data_gaps.py:332 |
class TestWorldModelPersistence |
_make_finding |
function | tests/test_phase1_data_gaps.py:49 |
def _make_finding(ftype, value, host, metadata) |
parser |
function | tests/test_phase1_data_gaps.py:36 |
def parser() |
test_add_domain_stores_and_adds_note |
method | tests/test_phase1_data_gaps.py:181 |
def test_add_domain_stores_and_adds_note(self, world_model) |
test_add_domain_without_host |
method | tests/test_phase1_data_gaps.py:189 |
def test_add_domain_without_host(self, world_model) |
test_add_email_stores_and_deduplicates |
method | tests/test_phase1_data_gaps.py:175 |
def test_add_email_stores_and_deduplicates(self, world_model) |
test_computes_centrality_from_graph_when_no_candidates |
method | tests/test_phase1_data_gaps.py:452 |
def test_computes_centrality_from_graph_when_no_candidates(self, tmp_path) |
test_consume_empty_file_returns_zero |
method | tests/test_phase1_data_gaps.py:266 |
def test_consume_empty_file_returns_zero(self, world_model, tmp_path) |
test_consume_ingests_hosts_and_services |
method | tests/test_phase1_data_gaps.py:272 |
def test_consume_ingests_hosts_and_services(self, world_model, tmp_path) |
test_consume_malformed_json_returns_zero |
method | tests/test_phase1_data_gaps.py:322 |
def test_consume_malformed_json_returns_zero(self, world_model, tmp_path) |
test_consume_nonexistent_file_returns_zero |
method | tests/test_phase1_data_gaps.py:318 |
def test_consume_nonexistent_file_returns_zero(self, world_model) |
test_credential_aware_rank_boosts_brute_force |
method | tests/test_phase1_data_gaps.py:501 |
def test_credential_aware_rank_boosts_brute_force(self) |
test_credential_aware_rank_boosts_credential_reuse |
method | tests/test_phase1_data_gaps.py:526 |
def test_credential_aware_rank_boosts_credential_reuse(self) |
test_credential_aware_rank_handles_empty_creds |
method | tests/test_phase1_data_gaps.py:543 |
def test_credential_aware_rank_handles_empty_creds(self) |
test_deduplicates_emails |
method | tests/test_phase1_data_gaps.py:119 |
def test_deduplicates_emails(self) |
test_domain_entry_defaults |
method | tests/test_phase1_data_gaps.py:165 |
def test_domain_entry_defaults(self) |
test_domain_finding_calls_add_domain |
method | tests/test_phase1_data_gaps.py:227 |
def test_domain_finding_calls_add_domain(self, world_model) |
test_email_entry_defaults |
method | tests/test_phase1_data_gaps.py:159 |
def test_email_entry_defaults(self) |
test_email_finding_calls_add_email |
method | tests/test_phase1_data_gaps.py:235 |
def test_email_finding_calls_add_email(self, world_model) |
test_emails_and_domains_survive_roundtrip |
method | tests/test_phase1_data_gaps.py:333 |
def test_emails_and_domains_survive_roundtrip(self, world_model) |
test_error_finding_adds_note |
method | tests/test_phase1_data_gaps.py:243 |
def test_error_finding_adds_note(self, world_model) |
test_error_finding_no_host_uses_sentinel |
method | tests/test_phase1_data_gaps.py:252 |
def test_error_finding_no_host_uses_sentinel(self, world_model) |
test_extracts_multiple_emails |
method | tests/test_phase1_data_gaps.py:111 |
def test_extracts_multiple_emails(self) |
test_extracts_single_email |
method | tests/test_phase1_data_gaps.py:104 |
def test_extracts_single_email(self) |
test_finding_accepts_metadata |
method | tests/test_phase1_data_gaps.py:61 |
def test_finding_accepts_metadata(self) |
test_finding_has_metadata_default_empty |
method | tests/test_phase1_data_gaps.py:57 |
def test_finding_has_metadata_default_empty(self) |
test_ignores_non_email |
method | tests/test_phase1_data_gaps.py:124 |
def test_ignores_non_email(self) |
test_multiple_services_extracted |
method | tests/test_phase1_data_gaps.py:81 |
def test_multiple_services_extracted(self) |
test_parser_extracts_emails_from_output |
method | tests/test_phase1_data_gaps.py:131 |
def test_parser_extracts_emails_from_output(self, parser) |
test_parser_still_extracts_service_versions_with_metadata |
method | tests/test_phase1_data_gaps.py:141 |
def test_parser_still_extracts_service_versions_with_metadata(self, parser) |
test_port_and_protocol_in_metadata |
method | tests/test_phase1_data_gaps.py:73 |
def test_port_and_protocol_in_metadata(self) |
test_produces_credential_spray_proposals |
method | tests/test_phase1_data_gaps.py:425 |
def test_produces_credential_spray_proposals(self, tmp_path) |
test_produces_lateral_proposals_from_host_nodes |
method | tests/test_phase1_data_gaps.py:388 |
def test_produces_lateral_proposals_from_host_nodes(self, tmp_path) |
test_recon_to_world_model_to_recommendation |
method | tests/test_phase1_data_gaps.py:563 |
def test_recon_to_world_model_to_recommendation(self, world_model, parser) |
test_reset_clears_emails_and_domains |
method | tests/test_phase1_data_gaps.py:349 |
def test_reset_clears_emails_and_domains(self, world_model) |
test_retry_with_no_open_ports_returns_empty |
method | tests/test_phase1_data_gaps.py:491 |
def test_retry_with_no_open_ports_returns_empty(self) |
test_returns_empty_on_nonexistent_world_model |
method | tests/test_phase1_data_gaps.py:377 |
def test_returns_empty_on_nonexistent_world_model(self) |
test_service_version_calls_add_service |
method | tests/test_phase1_data_gaps.py:199 |
def test_service_version_calls_add_service(self, world_model) |
test_service_version_no_longer_adds_note |
method | tests/test_phase1_data_gaps.py:213 |
def test_service_version_no_longer_adds_note(self, world_model) |
test_signals_are_wired_in_build_default_engine |
method | tests/test_phase1_data_gaps.py:477 |
def test_signals_are_wired_in_build_default_engine(self, tmp_path) |
test_snapshot_includes_emails_and_domains |
method | tests/test_phase1_data_gaps.py:356 |
def test_snapshot_includes_emails_and_domains(self, world_model) |
test_to_context_string_has_email_domain_counts |
method | tests/test_phase1_data_gaps.py:365 |
def test_to_context_string_has_email_domain_counts(self, world_model) |
test_udp_service_captured |
method | tests/test_phase1_data_gaps.py:91 |
def test_udp_service_captured(self) |
world_model |
function | tests/test_phase1_data_gaps.py:41 |
def world_model() |
test_contextual_help_reuses_canonical_labels |
function | tests/test_phase_labels.py:32 |
def test_contextual_help_reuses_canonical_labels() |
test_known_phase_labels |
function | tests/test_phase_labels.py:13 |
def test_known_phase_labels() |
test_phase_label_falls_back_to_title_case |
function | tests/test_phase_labels.py:19 |
def test_phase_label_falls_back_to_title_case() |
test_phase_label_keys_cover_command_index_phases |
function | tests/test_phase_labels.py:26 |
def test_phase_label_keys_cover_command_index_phases() |
test_tips_engine_reuses_canonical_labels |
function | tests/test_phase_labels.py:38 |
def test_tips_engine_reuses_canonical_labels() |
_Proc |
class | tests/test_pi_leg.py:20 |
class _Proc |
__init__ |
method | tests/test_pi_leg.py:21 |
def __init__(self, returncode, stdout, stderr) |
_fake_run |
function | tests/test_pi_leg.py:32 |
def _fake_run(cmd) |
_patch_run |
function | tests/test_pi_leg.py:27 |
def _patch_run(monkeypatch, proc) |
test_pi_default_model |
function | tests/test_pi_leg.py:67 |
def test_pi_default_model(monkeypatch) |
test_pi_empty_prompt_short_circuits |
function | tests/test_pi_leg.py:106 |
def test_pi_empty_prompt_short_circuits(monkeypatch) |
test_pi_empty_reply_raises |
function | tests/test_pi_leg.py:88 |
def test_pi_empty_reply_raises(monkeypatch) |
test_pi_missing_binary_raises |
function | tests/test_pi_leg.py:44 |
def test_pi_missing_binary_raises(monkeypatch) |
test_pi_model_passthrough |
function | tests/test_pi_leg.py:60 |
def test_pi_model_passthrough(monkeypatch) |
test_pi_nonzero_exit_raises |
function | tests/test_pi_leg.py:81 |
def test_pi_nonzero_exit_raises(monkeypatch) |
test_pi_pool_member_resolves |
function | tests/test_pi_leg.py:121 |
def test_pi_pool_member_resolves(monkeypatch, tmp_path) |
test_pi_prefix_case_insensitive |
function | tests/test_pi_leg.py:74 |
def test_pi_prefix_case_insensitive(monkeypatch) |
test_pi_stream_falls_back_to_complete |
function | tests/test_pi_leg.py:114 |
def test_pi_stream_falls_back_to_complete(monkeypatch) |
test_pi_success_returns_text |
function | tests/test_pi_leg.py:51 |
def test_pi_success_returns_text(monkeypatch) |
test_pi_timeout_raises |
function | tests/test_pi_leg.py:95 |
def test_pi_timeout_raises(monkeypatch) |
TestConditionEvaluator |
class | tests/test_pipeline_engine.py:150 |
class TestConditionEvaluator |
TestMcpEntryPoints |
class | tests/test_pipeline_engine.py:684 |
class TestMcpEntryPoints |
TestNestedPipelines |
class | tests/test_pipeline_engine.py:577 |
class TestNestedPipelines |
TestPipelineEngineExecution |
class | tests/test_pipeline_engine.py:383 |
class TestPipelineEngineExecution |
TestPipelineLoader |
class | tests/test_pipeline_engine.py:254 |
class TestPipelineLoader |
TestStepDerivers |
class | tests/test_pipeline_engine.py:206 |
class TestStepDerivers |
TestStepValidator |
class | tests/test_pipeline_engine.py:175 |
class TestStepValidator |
TestTemplateResolver |
class | tests/test_pipeline_engine.py:98 |
class TestTemplateResolver |
TestWiring |
class | tests/test_pipeline_engine.py:738 |
class TestWiring |
_ScriptedRunner |
class | tests/test_pipeline_engine.py:67 |
class _ScriptedRunner |
_SilentNarrator |
class | tests/test_pipeline_engine.py:369 |
class _SilentNarrator(INarratorAdapter) |
__init__ |
method | tests/test_pipeline_engine.py:70 |
def __init__(self, outputs, successes) |
__init__ |
method | tests/test_pipeline_engine.py:370 |
def __init__(self) |
_heuristic_success |
method | tests/test_pipeline_engine.py:87 |
def _heuristic_success(output) |
_write_pipeline |
function | tests/test_pipeline_engine.py:248 |
def _write_pipeline(pipelines_dir, name, data) |
narrate |
method | tests/test_pipeline_engine.py:373 |
def narrate(self, kind, target, message, payload, severity) |
run |
method | tests/test_pipeline_engine.py:79 |
def run(self, command, args, target, timeout_s) |
silent_engine_kwargs |
function | tests/test_pipeline_engine.py:361 |
def silent_engine_kwargs(temp_lazyown) |
temp_lazyown |
function | tests/test_pipeline_engine.py:36 |
def temp_lazyown(tmp_path, monkeypatch) |
test_bool_serialisation |
method | tests/test_pipeline_engine.py:112 |
def test_bool_serialisation(self, temp_lazyown) |
test_both_command_and_pipeline_rejected |
method | tests/test_pipeline_engine.py:284 |
def test_both_command_and_pipeline_rejected(self, temp_lazyown) |
test_condition_false_skips_step |
method | tests/test_pipeline_engine.py:444 |
def test_condition_false_skips_step(self, temp_lazyown, silent_engine_kwargs) |
test_condition_true_runs_step |
method | tests/test_pipeline_engine.py:473 |
def test_condition_true_runs_step(self, temp_lazyown, silent_engine_kwargs) |
test_cycle_is_detected |
method | tests/test_pipeline_engine.py:613 |
def test_cycle_is_detected(self, temp_lazyown, silent_engine_kwargs) |
test_daemon_has_pipeline_subcommand |
method | tests/test_pipeline_engine.py:758 |
def test_daemon_has_pipeline_subcommand(self) |
test_depth_limit_enforced |
method | tests/test_pipeline_engine.py:639 |
def test_depth_limit_enforced(self, temp_lazyown, silent_engine_kwargs) |
test_do_pipeline_exists_in_lazyown |
method | tests/test_pipeline_engine.py:739 |
def test_do_pipeline_exists_in_lazyown(self) |
test_dotted_path_lookup |
method | tests/test_pipeline_engine.py:99 |
def test_dotted_path_lookup(self, temp_lazyown) |
test_empty_and_non_empty |
method | tests/test_pipeline_engine.py:188 |
def test_empty_and_non_empty(self, temp_lazyown) |
test_empty_steps_rejected |
method | tests/test_pipeline_engine.py:310 |
def test_empty_steps_rejected(self, temp_lazyown) |
test_example_pipelines_validate |
method | tests/test_pipeline_engine.py:769 |
def test_example_pipelines_validate(self) |
test_input_from_replaces_args |
method | tests/test_pipeline_engine.py:545 |
def test_input_from_replaces_args(self, temp_lazyown, silent_engine_kwargs) |
test_invalid_name_rejected |
method | tests/test_pipeline_engine.py:278 |
def test_invalid_name_rejected(self, temp_lazyown) |
test_invalid_on_failure_rejected |
method | tests/test_pipeline_engine.py:324 |
def test_invalid_on_failure_rejected(self, temp_lazyown) |
test_invalid_yaml_raises_schema_error |
method | tests/test_pipeline_engine.py:346 |
def test_invalid_yaml_raises_schema_error(self, temp_lazyown) |
test_lazynmap_derives_services |
method | tests/test_pipeline_engine.py:214 |
def test_lazynmap_derives_services(self, temp_lazyown) |
test_list_index_lookup |
method | tests/test_pipeline_engine.py:138 |
def test_list_index_lookup(self, temp_lazyown) |
test_list_returns_json |
method | tests/test_pipeline_engine.py:685 |
def test_list_returns_json(self, temp_lazyown) |
test_list_returns_sorted_names |
method | tests/test_pipeline_engine.py:337 |
def test_list_returns_sorted_names(self, temp_lazyown) |
test_load_basic_pipeline |
method | tests/test_pipeline_engine.py:255 |
def test_load_basic_pipeline(self, temp_lazyown) |
test_mcp_exposes_four_pipeline_tools |
method | tests/test_pipeline_engine.py:748 |
def test_mcp_exposes_four_pipeline_tools(self) |
test_missing_path_renders_empty |
method | tests/test_pipeline_engine.py:106 |
def test_missing_path_renders_empty(self, temp_lazyown) |
test_missing_pipeline_raises |
method | tests/test_pipeline_engine.py:272 |
def test_missing_pipeline_raises(self, temp_lazyown) |
test_neither_command_nor_pipeline_rejected |
method | tests/test_pipeline_engine.py:297 |
def test_neither_command_nor_pipeline_rejected(self, temp_lazyown) |
test_nested_pipeline_runs_and_records_run_id |
method | tests/test_pipeline_engine.py:578 |
def test_nested_pipeline_runs_and_records_run_id(self, temp_lazyown, silent_engine_kwargs) |
test_no_code_execution |
method | tests/test_pipeline_engine.py:130 |
def test_no_code_execution(self, temp_lazyown) |
test_no_predicate_is_pass_through |
method | tests/test_pipeline_engine.py:195 |
def test_no_predicate_is_pass_through(self, temp_lazyown) |
test_no_template_passes_through |
method | tests/test_pipeline_engine.py:124 |
def test_no_template_passes_through(self, temp_lazyown) |
test_on_failure_continue_keeps_going |
method | tests/test_pipeline_engine.py:520 |
def test_on_failure_continue_keeps_going(self, temp_lazyown, silent_engine_kwargs) |
test_on_success_hook_runs |
method | tests/test_pipeline_engine.py:498 |
def test_on_success_hook_runs(self, temp_lazyown, silent_engine_kwargs) |
test_payload_lookup |
method | tests/test_pipeline_engine.py:118 |
def test_payload_lookup(self, temp_lazyown) |
test_ping_derives_ttl_and_alive |
method | tests/test_pipeline_engine.py:207 |
def test_ping_derives_ttl_and_alive(self, temp_lazyown) |
test_pipelines_dir_exists_and_has_readme |
method | tests/test_pipeline_engine.py:763 |
def test_pipelines_dir_exists_and_has_readme(self) |
test_regex_match |
method | tests/test_pipeline_engine.py:182 |
def test_regex_match(self, temp_lazyown) |
test_register_custom_deriver |
method | tests/test_pipeline_engine.py:236 |
def test_register_custom_deriver(self, temp_lazyown) |
test_run_rejects_invalid_name |
method | tests/test_pipeline_engine.py:699 |
def test_run_rejects_invalid_name(self, temp_lazyown) |
test_runs_steps_in_order_and_persists_artifacts |
method | tests/test_pipeline_engine.py:384 |
def test_runs_steps_in_order_and_persists_artifacts(self, temp_lazyown, silent_engine_kwargs) |
test_searchsploit_has_exploit |
method | tests/test_pipeline_engine.py:223 |
def test_searchsploit_has_exploit(self, temp_lazyown) |
test_status_returns_ok_with_no_runs |
method | tests/test_pipeline_engine.py:725 |
def test_status_returns_ok_with_no_runs(self, temp_lazyown) |
test_substring_match |
method | tests/test_pipeline_engine.py:176 |
def test_substring_match(self, temp_lazyown) |
test_truthy_table |
method | tests/test_pipeline_engine.py:164 |
def test_truthy_table(self, temp_lazyown, value, expected) |
test_unknown_command_returns_empty |
method | tests/test_pipeline_engine.py:231 |
def test_unknown_command_returns_empty(self, temp_lazyown) |
test_validate_failure_marks_step_failed |
method | tests/test_pipeline_engine.py:417 |
def test_validate_failure_marks_step_failed(self, temp_lazyown, silent_engine_kwargs) |
test_validate_missing_pipeline_errors |
method | tests/test_pipeline_engine.py:719 |
def test_validate_missing_pipeline_errors(self, temp_lazyown) |
test_validate_returns_step_list |
method | tests/test_pipeline_engine.py:705 |
def test_validate_returns_step_list(self, temp_lazyown) |
_live_keys |
function | tests/test_placeholder_coverage.py:40 |
def _live_keys() |
_skill_keys |
function | tests/test_placeholder_coverage.py:49 |
def _skill_keys() |
test_addon_tokens_resolve |
function | tests/test_placeholder_coverage.py:74 |
def test_addon_tokens_resolve() |
test_addon_tokens_resolve_at_runtime |
function | tests/test_placeholder_coverage.py:94 |
def test_addon_tokens_resolve_at_runtime() |
test_required_params_exist_live |
function | tests/test_placeholder_coverage.py:118 |
def test_required_params_exist_live() |
test_schema_covers_live_keys |
function | tests/test_placeholder_coverage.py:63 |
def test_schema_covers_live_keys() |
test_skill_documents_validator_keys |
function | tests/test_placeholder_coverage.py:68 |
def test_skill_documents_validator_keys() |
test_validator_covers_live_keys |
function | tests/test_placeholder_coverage.py:57 |
def test_validator_covers_live_keys() |
TestPlaceholderQuoting |
class | tests/test_plugin_loader_safety.py:38 |
class TestPlaceholderQuoting |
_load_fn |
function | tests/test_plugin_loader_safety.py:23 |
def _load_fn() |
test_command_substitution_neutralized |
method | tests/test_plugin_loader_safety.py:48 |
def test_command_substitution_neutralized(self) |
test_injection_neutralized |
method | tests/test_plugin_loader_safety.py:43 |
def test_injection_neutralized(self) |
test_missing_key_left_verbatim |
method | tests/test_plugin_loader_safety.py:53 |
def test_missing_key_left_verbatim(self) |
test_plain_values_pass_through |
method | tests/test_plugin_loader_safety.py:39 |
def test_plain_values_pass_through(self) |
test_uses_shlex_quote |
method | tests/test_plugin_loader_safety.py:57 |
def test_uses_shlex_quote(self) |
test_corrupt_store_reads_empty |
function | tests/test_plugin_tiers.py:79 |
def test_corrupt_store_reads_empty(tmp_path) |
test_default_tier_is_community |
function | tests/test_plugin_tiers.py:37 |
def test_default_tier_is_community() |
test_format_rating |
function | tests/test_plugin_tiers.py:85 |
def test_format_rating() |
test_malformed_manifest_is_ignored |
function | tests/test_plugin_tiers.py:56 |
def test_malformed_manifest_is_ignored(tmp_path) |
test_manifest_overrides_metadata |
function | tests/test_plugin_tiers.py:29 |
def test_manifest_overrides_metadata() |
test_metadata_tier_used_without_manifest |
function | tests/test_plugin_tiers.py:33 |
def test_metadata_tier_used_without_manifest() |
test_missing_manifest_returns_empty |
function | tests/test_plugin_tiers.py:52 |
def test_missing_manifest_returns_empty(tmp_path) |
test_rate_and_average |
function | tests/test_plugin_tiers.py:62 |
def test_rate_and_average(tmp_path) |
test_rate_rejects_bad_input |
function | tests/test_plugin_tiers.py:70 |
def test_rate_rejects_bad_input(tmp_path) |
test_read_metadata_tier |
function | tests/test_plugin_tiers.py:91 |
def test_read_metadata_tier(tmp_path) |
test_repo_manifest_loads_with_valid_tiers |
function | tests/test_plugin_tiers.py:42 |
def test_repo_manifest_loads_with_valid_tiers() |
test_tier_constants |
function | tests/test_plugin_tiers.py:25 |
def test_tier_constants() |
_Spec |
class | tests/test_profiles.py:26 |
class _Spec |
__init__ |
method | tests/test_profiles.py:27 |
def __init__(self, import_name) |
_pinned_names |
function | tests/test_profiles.py:68 |
def _pinned_names(path) |
test_default_profile_is_full |
function | tests/test_profiles.py:31 |
def test_default_profile_is_full(monkeypatch) |
test_full_profile_keeps_every_spec |
function | tests/test_profiles.py:54 |
def test_full_profile_keeps_every_spec(monkeypatch) |
test_light_lock_drops_analytics_and_ai |
function | tests/test_profiles.py:88 |
def test_light_lock_drops_analytics_and_ai() |
test_light_lock_is_a_subset_of_full_lock |
function | tests/test_profiles.py:79 |
def test_light_lock_is_a_subset_of_full_lock() |
test_light_profile_selected |
function | tests/test_profiles.py:37 |
def test_light_profile_selected(monkeypatch) |
test_light_profile_skips_analytics_and_ai |
function | tests/test_profiles.py:60 |
def test_light_profile_skips_analytics_and_ai(monkeypatch) |
test_profile_value_is_case_insensitive |
function | tests/test_profiles.py:43 |
def test_profile_value_is_case_insensitive(monkeypatch) |
test_unknown_profile_raises |
function | tests/test_profiles.py:48 |
def test_unknown_profile_raises(monkeypatch) |
test_ansi_escape_gets_fenced |
function | tests/test_prompt_readline_markers.py:25 |
def test_ansi_escape_gets_fenced() |
test_mixed_prompt_fences_only_ansi |
function | tests/test_prompt_readline_markers.py:43 |
def test_mixed_prompt_fences_only_ansi() |
test_newline_stays_bare |
function | tests/test_prompt_readline_markers.py:35 |
def test_newline_stays_bare() |
test_render_prompt_default_has_no_markers |
function | tests/test_prompt_readline_markers.py:53 |
def test_render_prompt_default_has_no_markers() |
test_render_prompt_raw_has_no_markers |
function | tests/test_prompt_readline_markers.py:70 |
def test_render_prompt_raw_has_no_markers() |
test_render_prompt_readline_mode_fences_ansi_only |
function | tests/test_prompt_readline_markers.py:62 |
def test_render_prompt_readline_mode_fences_ansi_only() |
test_strip_readline_markers_restores_raw |
function | tests/test_prompt_readline_markers.py:79 |
def test_strip_readline_markers_restores_raw() |
test_stripped_prompt_matches_box_shape |
function | tests/test_prompt_readline_markers.py:87 |
def test_stripped_prompt_matches_box_shape() |
_command_set_with_fake_shell |
function | tests/test_prompt_refresh.py:22 |
def _command_set_with_fake_shell() |
test_do_assign_calls_refresh_prompt |
function | tests/test_prompt_refresh.py:52 |
def test_do_assign_calls_refresh_prompt() |
test_no_bracket_replace_hack |
function | tests/test_prompt_refresh.py:71 |
def test_no_bracket_replace_hack() |
test_prompt_read_after_forward |
function | tests/test_prompt_refresh.py:37 |
def test_prompt_read_after_forward() |
test_prompt_write_forwards_to_shell |
function | tests/test_prompt_refresh.py:29 |
def test_prompt_write_forwards_to_shell() |
test_render_prompt_includes_rhost |
function | tests/test_prompt_refresh.py:65 |
def test_render_prompt_includes_rhost() |
test_rhost_commands_use_refresh_prompt |
function | tests/test_prompt_refresh.py:78 |
def test_rhost_commands_use_refresh_prompt() |
test_shell_defines_refresh_prompt |
function | tests/test_prompt_refresh.py:59 |
def test_shell_defines_refresh_prompt() |
test_unrelated_write_stays_local |
function | tests/test_prompt_refresh.py:44 |
def test_unrelated_write_stays_local() |
_load_tools |
function | tests/test_pwntomate_tools.py:47 |
def _load_tools() |
_render |
function | tests/test_pwntomate_tools.py:57 |
def _render(template, domain, tunnel) |
_would_run |
function | tests/test_pwntomate_tools.py:83 |
def _would_run(template, domain) |
test_gobuster_templates_use_valid_syntax |
function | tests/test_pwntomate_tools.py:129 |
def test_gobuster_templates_use_valid_syntax() |
test_no_hardcoded_always_ssl_flag |
function | tests/test_pwntomate_tools.py:141 |
def test_no_hardcoded_always_ssl_flag() |
test_placeholders_match_pwntomate_substitutions |
function | tests/test_pwntomate_tools.py:103 |
def test_placeholders_match_pwntomate_substitutions() |
test_rendered_commands_have_no_empty_host |
function | tests/test_pwntomate_tools.py:115 |
def test_rendered_commands_have_no_empty_host() |
test_templates_are_valid_json_with_required_keys |
function | tests/test_pwntomate_tools.py:92 |
def test_templates_are_valid_json_with_required_keys() |
Server |
class | tests/test_rea_mcp.py:46 |
class Server |
TextContent |
class | tests/test_rea_mcp.py:39 |
class TextContent |
Tool |
class | tests/test_rea_mcp.py:35 |
class Tool |
__init__ |
method | tests/test_rea_mcp.py:36 |
def __init__(self) |
__init__ |
method | tests/test_rea_mcp.py:40 |
def __init__(self) |
__init__ |
method | tests/test_rea_mcp.py:47 |
def __init__(self) |
_call |
function | tests/test_rea_mcp.py:73 |
def _call(arguments, monkeypatch) |
_fake_run |
function | tests/test_rea_mcp.py:78 |
def _fake_run(argv) |
_fake_run |
function | tests/test_rea_mcp.py:138 |
def _fake_run(argv) |
_stub_mcp_sdk |
function | tests/test_rea_mcp.py:21 |
def _stub_mcp_sdk() |
call_tool |
method | tests/test_rea_mcp.py:53 |
def call_tool(self) |
list_tools |
method | tests/test_rea_mcp.py:50 |
def list_tools(self) |
test_analyze_missing_target |
function | tests/test_rea_mcp.py:155 |
def test_analyze_missing_target(monkeypatch) |
test_analyze_uses_explicit_target |
function | tests/test_rea_mcp.py:148 |
def test_analyze_uses_explicit_target(tmp_path, monkeypatch) |
test_decompile_needs_valid_address |
function | tests/test_rea_mcp.py:174 |
def test_decompile_needs_valid_address(tmp_path, monkeypatch) |
test_doctor_argv |
function | tests/test_rea_mcp.py:113 |
def test_doctor_argv(monkeypatch) |
test_inspect_artifact_argv |
function | tests/test_rea_mcp.py:119 |
def test_inspect_artifact_argv(tmp_path, monkeypatch) |
test_large_output_survives_compaction |
function | tests/test_rea_mcp.py:132 |
def test_large_output_survives_compaction(tmp_path, monkeypatch) |
test_list_tools_has_rea |
function | tests/test_rea_mcp.py:90 |
def test_list_tools_has_rea() |
test_missing_binary |
function | tests/test_rea_mcp.py:105 |
def test_missing_binary(monkeypatch) |
test_provider_flag_appended |
function | tests/test_rea_mcp.py:201 |
def test_provider_flag_appended(tmp_path, monkeypatch) |
test_search_needs_query |
function | tests/test_rea_mcp.py:189 |
def test_search_needs_query(tmp_path, monkeypatch) |
test_target_flag_injection_rejected |
function | tests/test_rea_mcp.py:168 |
def test_target_flag_injection_rejected(monkeypatch) |
test_unknown_action_rejected |
function | tests/test_rea_mcp.py:99 |
def test_unknown_action_rejected(monkeypatch) |
_ExplodingRAG |
class | tests/test_reactive_engine_semantic.py:189 |
class _ExplodingRAG |
_FakeRAG |
class | tests/test_reactive_engine_semantic.py:33 |
class _FakeRAG |
__init__ |
method | tests/test_reactive_engine_semantic.py:36 |
def __init__(self, hits, ready) |
query |
method | tests/test_reactive_engine_semantic.py:41 |
def query(self, text, n) |
query |
method | tests/test_reactive_engine_semantic.py:192 |
def query(self, text, n) |
test_advisor_swallows_rag_query_errors |
function | tests/test_reactive_engine_semantic.py:186 |
def test_advisor_swallows_rag_query_errors() |
test_emits_priority_five_suggestion |
function | tests/test_reactive_engine_semantic.py:75 |
def test_emits_priority_five_suggestion() |
test_engine_uses_semantic_advisor_when_supplied |
function | tests/test_reactive_engine_semantic.py:158 |
def test_engine_uses_semantic_advisor_when_supplied() |
test_returns_empty_when_disabled_via_payload |
function | tests/test_reactive_engine_semantic.py:55 |
def test_returns_empty_when_disabled_via_payload() |
test_returns_empty_when_rag_unavailable |
function | tests/test_reactive_engine_semantic.py:46 |
def test_returns_empty_when_rag_unavailable(monkeypatch) |
test_skips_hits_without_command_prefix |
function | tests/test_reactive_engine_semantic.py:142 |
def test_skips_hits_without_command_prefix() |
test_skips_low_score_hits |
function | tests/test_reactive_engine_semantic.py:99 |
def test_skips_low_score_hits() |
test_skips_same_command_and_dedupes |
function | tests/test_reactive_engine_semantic.py:115 |
def test_skips_same_command_and_dedupes() |
TestExtractLabels |
class | tests/test_reactive_hints.py:88 |
class TestExtractLabels |
TestFirstToken |
class | tests/test_reactive_hints.py:57 |
class TestFirstToken |
TestRenderInlineHints |
class | tests/test_reactive_hints.py:111 |
class TestRenderInlineHints |
TestTruncate |
class | tests/test_reactive_hints.py:71 |
class TestTruncate |
_FakeAdvisor |
class | tests/test_reactive_hints.py:29 |
class _FakeAdvisor |
__init__ |
method | tests/test_reactive_hints.py:32 |
def __init__(self, suggestions) |
advisor_with_three_hints |
function | tests/test_reactive_hints.py:42 |
def advisor_with_three_hints() |
empty_advisor |
function | tests/test_reactive_hints.py:53 |
def empty_advisor() |
suggest_next |
method | tests/test_reactive_hints.py:36 |
def suggest_next(self, recent_commands, limit) |
test_advisor_called_with_correct_command |
method | tests/test_reactive_hints.py:137 |
def test_advisor_called_with_correct_command(self, advisor_with_three_hints) |
test_all_skip_commands_are_skipped |
method | tests/test_reactive_hints.py:149 |
def test_all_skip_commands_are_skipped(self, advisor_with_three_hints) |
test_disabled_flag_skips_render |
method | tests/test_reactive_hints.py:112 |
def test_disabled_flag_skips_render(self, advisor_with_three_hints) |
test_empty_command_skips_render |
method | tests/test_reactive_hints.py:122 |
def test_empty_command_skips_render(self, advisor_with_three_hints) |
test_empty_string |
method | tests/test_reactive_hints.py:64 |
def test_empty_string(self) |
test_empty_suggestions_skips_render |
method | tests/test_reactive_hints.py:127 |
def test_empty_suggestions_skips_render(self, empty_advisor) |
test_exact_length_unchanged |
method | tests/test_reactive_hints.py:75 |
def test_exact_length_unchanged(self) |
test_exception_in_advisor_does_not_propagate |
method | tests/test_reactive_hints.py:142 |
def test_exception_in_advisor_does_not_propagate(self) |
test_extracts_first_word |
method | tests/test_reactive_hints.py:58 |
def test_extracts_first_word(self) |
test_falls_back_to_id_when_no_label |
method | tests/test_reactive_hints.py:93 |
def test_falls_back_to_id_when_no_label(self) |
test_limit_is_passed_to_advisor |
method | tests/test_reactive_hints.py:155 |
def test_limit_is_passed_to_advisor(self, advisor_with_three_hints) |
test_long_string_truncated |
method | tests/test_reactive_hints.py:78 |
def test_long_string_truncated(self) |
test_normal_command_renders_hint |
method | tests/test_reactive_hints.py:132 |
def test_normal_command_renders_hint(self, advisor_with_three_hints) |
test_picks_label_over_id |
method | tests/test_reactive_hints.py:89 |
def test_picks_label_over_id(self) |
test_respects_limit |
method | tests/test_reactive_hints.py:101 |
def test_respects_limit(self) |
test_short_string_unchanged |
method | tests/test_reactive_hints.py:72 |
def test_short_string_unchanged(self) |
test_single_word |
method | tests/test_reactive_hints.py:61 |
def test_single_word(self) |
test_skip_command_skips_render |
method | tests/test_reactive_hints.py:117 |
def test_skip_command_skips_render(self, advisor_with_three_hints) |
test_skips_empty_entries |
method | tests/test_reactive_hints.py:97 |
def test_skips_empty_entries(self) |
test_truncates_long_labels |
method | tests/test_reactive_hints.py:105 |
def test_truncates_long_labels(self) |
test_truncation_preserves_start |
method | tests/test_reactive_hints.py:83 |
def test_truncation_preserves_start(self) |
test_whitespace_only |
method | tests/test_reactive_hints.py:67 |
def test_whitespace_only(self) |
TestKillChainNextExpanded |
class | tests/test_reactive_hints_expanded.py:13 |
class TestKillChainNextExpanded |
TestPhasePriorityExpanded |
class | tests/test_reactive_hints_expanded.py:71 |
class TestPhasePriorityExpanded |
TestProtipTriggers |
class | tests/test_reactive_hints_expanded.py:161 |
class TestProtipTriggers |
TestProtipsExpanded |
class | tests/test_reactive_hints_expanded.py:107 |
class TestProtipsExpanded |
test_after_trigger |
method | tests/test_reactive_hints_expanded.py:175 |
def test_after_trigger(self) |
test_auto_pwn_has_followups |
method | tests/test_reactive_hints_expanded.py:21 |
def test_auto_pwn_has_followups(self) |
test_auto_pwn_in_lazynmap_followups |
method | tests/test_reactive_hints_expanded.py:14 |
def test_auto_pwn_in_lazynmap_followups(self) |
test_campaign_has_followups |
method | tests/test_reactive_hints_expanded.py:58 |
def test_campaign_has_followups(self) |
test_chain_has_followups |
method | tests/test_reactive_hints_expanded.py:28 |
def test_chain_has_followups(self) |
test_collab_has_followups |
method | tests/test_reactive_hints_expanded.py:64 |
def test_collab_has_followups(self) |
test_enum_includes_nuclei |
method | tests/test_reactive_hints_expanded.py:80 |
def test_enum_includes_nuclei(self) |
test_exploit_includes_automation |
method | tests/test_reactive_hints_expanded.py:72 |
def test_exploit_includes_automation(self) |
test_hunt_has_followups |
method | tests/test_reactive_hints_expanded.py:34 |
def test_hunt_has_followups(self) |
test_lateral_includes_collab |
method | tests/test_reactive_hints_expanded.py:93 |
def test_lateral_includes_collab(self) |
test_lazynmap_suggests_nuclei |
method | tests/test_reactive_hints_expanded.py:52 |
def test_lazynmap_suggests_nuclei(self) |
test_nuclei_has_followups |
method | tests/test_reactive_hints_expanded.py:40 |
def test_nuclei_has_followups(self) |
test_os_linux_detection |
method | tests/test_reactive_hints_expanded.py:162 |
def test_os_linux_detection(self) |
test_os_windows_detection |
method | tests/test_reactive_hints_expanded.py:169 |
def test_os_windows_detection(self) |
test_persist_phase_exists |
method | tests/test_reactive_hints_expanded.py:99 |
def test_persist_phase_exists(self) |
test_phase_in_trigger |
method | tests/test_reactive_hints_expanded.py:181 |
def test_phase_in_trigger(self) |
test_postexp_includes_security |
method | tests/test_reactive_hints_expanded.py:86 |
def test_postexp_includes_security(self) |
test_session_tips_expanded |
method | tests/test_reactive_hints_expanded.py:149 |
def test_session_tips_expanded(self) |
test_tips_include_automation |
method | tests/test_reactive_hints_expanded.py:108 |
def test_tips_include_automation(self) |
test_tips_include_collab |
method | tests/test_reactive_hints_expanded.py:130 |
def test_tips_include_collab(self) |
test_tips_include_discovery |
method | tests/test_reactive_hints_expanded.py:141 |
def test_tips_include_discovery(self) |
test_tips_include_security |
method | tests/test_reactive_hints_expanded.py:120 |
def test_tips_include_security(self) |
test_yara_scan_has_followups |
method | tests/test_reactive_hints_expanded.py:46 |
def test_yara_scan_has_followups(self) |
TestDataOfInterestMatcher |
class | tests/test_reactive_lateral_data.py:61 |
class TestDataOfInterestMatcher |
TestLateralOpportunityMatcher |
class | tests/test_reactive_lateral_data.py:12 |
class TestLateralOpportunityMatcher |
TestReactiveEngineIntegration |
class | tests/test_reactive_lateral_data.py:119 |
class TestReactiveEngineIntegration |
_make_engine |
method | tests/test_reactive_lateral_data.py:120 |
def _make_engine(self, matchers) |
test_confidence |
method | tests/test_reactive_lateral_data.py:54 |
def test_confidence(self) |
test_confidence_levels |
method | tests/test_reactive_lateral_data.py:107 |
def test_confidence_levels(self) |
test_data_signals_produce_decisions |
method | tests/test_reactive_lateral_data.py:146 |
def test_data_signals_produce_decisions(self) |
test_decisions_sorted_by_priority |
method | tests/test_reactive_lateral_data.py:161 |
def test_decisions_sorted_by_priority(self) |
test_domain_admin |
method | tests/test_reactive_lateral_data.py:44 |
def test_domain_admin(self) |
test_file_pattern_config |
method | tests/test_reactive_lateral_data.py:97 |
def test_file_pattern_config(self) |
test_file_pattern_env |
method | tests/test_reactive_lateral_data.py:92 |
def test_file_pattern_env(self) |
test_kerberos_ticket |
method | tests/test_reactive_lateral_data.py:13 |
def test_kerberos_ticket(self) |
test_lateral_signals_produce_decisions |
method | tests/test_reactive_lateral_data.py:132 |
def test_lateral_signals_produce_decisions(self) |
test_no_match |
method | tests/test_reactive_lateral_data.py:49 |
def test_no_match(self) |
test_no_match |
method | tests/test_reactive_lateral_data.py:102 |
def test_no_match(self) |
test_pii_credit_card |
method | tests/test_reactive_lateral_data.py:72 |
def test_pii_credit_card(self) |
test_pii_email |
method | tests/test_reactive_lateral_data.py:62 |
def test_pii_email(self) |
test_pii_ssn |
method | tests/test_reactive_lateral_data.py:67 |
def test_pii_ssn(self) |
test_rdp_session |
method | tests/test_reactive_lateral_data.py:19 |
def test_rdp_session(self) |
test_secret_api_key |
method | tests/test_reactive_lateral_data.py:77 |
def test_secret_api_key(self) |
test_secret_aws_key |
method | tests/test_reactive_lateral_data.py:82 |
def test_secret_aws_key(self) |
test_secret_private_key |
method | tests/test_reactive_lateral_data.py:87 |
def test_secret_private_key(self) |
test_smb_admin_share |
method | tests/test_reactive_lateral_data.py:24 |
def test_smb_admin_share(self) |
test_ssh_key |
method | tests/test_reactive_lateral_data.py:34 |
def test_ssh_key(self) |
test_winrm_access |
method | tests/test_reactive_lateral_data.py:29 |
def test_winrm_access(self) |
test_wmi_access |
method | tests/test_reactive_lateral_data.py:39 |
def test_wmi_access(self) |
_write_events |
function | tests/test_reasoning_stream.py:28 |
def _write_events(path, events) |
test_event_to_entry_extracts_reward |
function | tests/test_reasoning_stream.py:85 |
def test_event_to_entry_extracts_reward() |
test_event_to_entry_handles_non_dict_payload |
function | tests/test_reasoning_stream.py:111 |
def test_event_to_entry_handles_non_dict_payload() |
test_event_to_entry_metrics_skip_renders_success_rate |
function | tests/test_reasoning_stream.py:95 |
def test_event_to_entry_metrics_skip_renders_success_rate() |
test_event_to_entry_step_done_failure_flips_icon_and_style |
function | tests/test_reasoning_stream.py:75 |
def test_event_to_entry_step_done_failure_flips_icon_and_style() |
test_event_to_entry_step_start_uses_reason_and_source |
function | tests/test_reasoning_stream.py:53 |
def test_event_to_entry_step_start_uses_reason_and_source() |
test_event_to_entry_unknown_type_falls_back |
function | tests/test_reasoning_stream.py:105 |
def test_event_to_entry_unknown_type_falls_back() |
test_format_size_threshold |
function | tests/test_reasoning_stream.py:117 |
def test_format_size_threshold() |
test_latest_reasoning_end_to_end |
function | tests/test_reasoning_stream.py:127 |
def test_latest_reasoning_end_to_end(tmp_path) |
test_read_raw_events_honours_limit_tail |
function | tests/test_reasoning_stream.py:46 |
def test_read_raw_events_honours_limit_tail(tmp_path) |
test_read_raw_events_missing_file_returns_empty |
function | tests/test_reasoning_stream.py:32 |
def test_read_raw_events_missing_file_returns_empty(tmp_path) |
test_read_raw_events_skips_malformed_lines |
function | tests/test_reasoning_stream.py:36 |
def test_read_raw_events_skips_malformed_lines(tmp_path) |
test_truncate_adds_ellipsis |
function | tests/test_reasoning_stream.py:122 |
def test_truncate_adds_ellipsis() |
TestAdapters |
class | tests/test_recommendation.py:158 |
class TestAdapters |
TestContextAndFactory |
class | tests/test_recommendation.py:216 |
class TestContextAndFactory |
TestFusionCore |
class | tests/test_recommendation.py:70 |
class TestFusionCore |
_Advisor |
class | tests/test_recommendation.py:160 |
class _Advisor |
_BoomSignal |
class | tests/test_recommendation.py:55 |
class _BoomSignal |
_Item |
class | tests/test_recommendation.py:178 |
class _Item |
_Plan |
class | tests/test_recommendation.py:185 |
class _Plan |
_Policy |
class | tests/test_recommendation.py:168 |
class _Policy |
_StubSignal |
class | tests/test_recommendation.py:46 |
class _StubSignal |
__init__ |
method | tests/test_recommendation.py:47 |
def __init__(self, name, proposals) |
__init__ |
method | tests/test_recommendation.py:179 |
def __init__(self, kind, name, reason) |
_builder |
function | tests/test_recommendation.py:188 |
def _builder(target, engine, payload) |
_ctx |
function | tests/test_recommendation.py:36 |
def _ctx(limit, recent, phase) |
_engine |
function | tests/test_recommendation.py:62 |
def _engine(signals, resolver, weights) |
get_recommendations |
method | tests/test_recommendation.py:169 |
def get_recommendations(self, target) |
propose |
method | tests/test_recommendation.py:51 |
def propose(self, ctx) |
propose |
method | tests/test_recommendation.py:58 |
def propose(self, ctx) |
suggest_next |
method | tests/test_recommendation.py:161 |
def suggest_next(self, recent_commands, limit) |
test_build_context_resolves_target_and_phase |
method | tests/test_recommendation.py:229 |
def test_build_context_resolves_target_and_phase(self, tmp_path) |
test_build_default_engine_always_returns_engine |
method | tests/test_recommendation.py:234 |
def test_build_default_engine_always_returns_engine(self, tmp_path) |
test_category_prior_boosts_matching_action |
method | tests/test_recommendation.py:98 |
def test_category_prior_boosts_matching_action(self) |
test_covered_category_not_duplicated_as_standalone |
method | tests/test_recommendation.py:123 |
def test_covered_category_not_duplicated_as_standalone(self) |
test_cross_signal_merge_sums_and_records_provenance |
method | tests/test_recommendation.py:85 |
def test_cross_signal_merge_sums_and_records_provenance(self) |
test_deterministic_ordering_on_score_tie |
method | tests/test_recommendation.py:131 |
def test_deterministic_ordering_on_score_tie(self) |
test_failing_signal_is_isolated |
method | tests/test_recommendation.py:147 |
def test_failing_signal_is_isolated(self) |
test_graph_signal_extracts_label_and_score |
method | tests/test_recommendation.py:159 |
def test_graph_signal_extracts_label_and_score(self) |
test_killchain_signal_filters_already_run |
method | tests/test_recommendation.py:206 |
def test_killchain_signal_filters_already_run(self) |
test_killchain_signal_uses_adjacency_then_phase |
method | tests/test_recommendation.py:196 |
def test_killchain_signal_uses_adjacency_then_phase(self) |
test_limit_is_honoured |
method | tests/test_recommendation.py:139 |
def test_limit_is_honoured(self) |
test_policy_signal_emits_categories |
method | tests/test_recommendation.py:167 |
def test_policy_signal_emits_categories(self) |
test_read_recent_commands_missing_file |
method | tests/test_recommendation.py:226 |
def test_read_recent_commands_missing_file(self, tmp_path) |
test_read_recent_commands_orders_and_windows |
method | tests/test_recommendation.py:217 |
def test_read_recent_commands_orders_and_windows(self, tmp_path) |
test_recon_signal_maps_items_with_descending_weight |
method | tests/test_recommendation.py:177 |
def test_recon_signal_maps_items_with_descending_weight(self) |
test_single_signal_normalises_to_peak |
method | tests/test_recommendation.py:71 |
def test_single_signal_normalises_to_peak(self) |
test_uncovered_category_surfaces_as_recommendation |
method | tests/test_recommendation.py:115 |
def test_uncovered_category_surfaces_as_recommendation(self) |
test_zero_weight_signal_contributes_nothing |
method | tests/test_recommendation.py:152 |
def test_zero_weight_signal_contributes_nothing(self) |
BuildReconPlanContractSpec |
class | tests/test_recon_plan.py:149 |
class BuildReconPlanContractSpec(TestCase) |
RenderMarkdownSpec |
class | tests/test_recon_plan.py:289 |
class RenderMarkdownSpec(TestCase) |
RenderRichSpec |
class | tests/test_recon_plan.py:379 |
class RenderRichSpec(TestCase) |
WritePlanSpec |
class | tests/test_recon_plan.py:338 |
class WritePlanSpec(TestCase) |
_Recorder |
class | tests/test_recon_plan.py:383 |
class _Recorder |
_build |
method | tests/test_recon_plan.py:179 |
def _build(self, current_os, payload) |
_plan |
method | tests/test_recon_plan.py:341 |
def _plan(self, target) |
_plan_with_items |
method | tests/test_recon_plan.py:292 |
def _plan_with_items(self) |
_seed_addon |
function | tests/test_recon_plan.py:68 |
def _seed_addon(addons_dir, name, os_value, triggers) |
_seed_command_index |
function | tests/test_recon_plan.py:110 |
def _seed_command_index(path) |
_seed_engine |
function | tests/test_recon_plan.py:130 |
def _seed_engine(sessions, addons, tools, nmap_xml, history_rows, current_os) |
_seed_tool |
function | tests/test_recon_plan.py:90 |
def _seed_tool(tools_dir, name, triggers, command, os_value) |
print |
method | tests/test_recon_plan.py:386 |
def print(self, line) |
setUp |
method | tests/test_recon_plan.py:152 |
def setUp(self) |
tearDown |
method | tests/test_recon_plan.py:176 |
def tearDown(self) |
test_empty_scan_returns_empty_plan |
method | tests/test_recon_plan.py:273 |
def test_empty_scan_returns_empty_plan(self) |
test_markdown_handles_empty_plan |
method | tests/test_recon_plan.py:325 |
def test_markdown_handles_empty_plan(self) |
test_markdown_renders_command_preview_block |
method | tests/test_recon_plan.py:320 |
def test_markdown_renders_command_preview_block(self) |
test_markdown_renders_services_table |
method | tests/test_recon_plan.py:315 |
def test_markdown_renders_services_table(self) |
test_markdown_starts_with_target_header |
method | tests/test_recon_plan.py:311 |
def test_markdown_starts_with_target_header(self) |
test_plan_excludes_already_executed_addons |
method | tests/test_recon_plan.py:216 |
def test_plan_excludes_already_executed_addons(self) |
test_plan_filters_os_incompatible_addons_on_linux |
method | tests/test_recon_plan.py:199 |
def test_plan_filters_os_incompatible_addons_on_linux(self) |
test_plan_includes_addons_matching_open_service |
method | tests/test_recon_plan.py:193 |
def test_plan_includes_addons_matching_open_service(self) |
test_plan_includes_phase_priority_command_suggestions |
method | tests/test_recon_plan.py:237 |
def test_plan_includes_phase_priority_command_suggestions(self) |
test_plan_includes_tools_matching_open_service |
method | tests/test_recon_plan.py:204 |
def test_plan_includes_tools_matching_open_service(self) |
test_plan_skips_command_layer_when_index_missing |
method | tests/test_recon_plan.py:243 |
def test_plan_skips_command_layer_when_index_missing(self) |
test_plan_uses_payload_target_when_argument_missing |
method | tests/test_recon_plan.py:259 |
def test_plan_uses_payload_target_when_argument_missing(self) |
test_renders_friendly_message_when_empty |
method | tests/test_recon_plan.py:406 |
def test_renders_friendly_message_when_empty(self) |
test_renders_one_line_per_item |
method | tests/test_recon_plan.py:389 |
def test_renders_one_line_per_item(self) |
test_tool_preview_substitutes_payload_placeholders |
method | tests/test_recon_plan.py:210 |
def test_tool_preview_substitutes_payload_placeholders(self) |
test_write_creates_expected_filename |
method | tests/test_recon_plan.py:351 |
def test_write_creates_expected_filename(self) |
test_write_overwrites_existing_plan |
method | tests/test_recon_plan.py:370 |
def test_write_overwrites_existing_plan(self) |
test_write_sanitises_target_for_filename |
method | tests/test_recon_plan.py:358 |
def test_write_sanitises_target_for_filename(self) |
test_write_sets_restrictive_permissions |
method | tests/test_recon_plan.py:364 |
def test_write_sets_restrictive_permissions(self) |
TestBannersHTML |
class | tests/test_report_banners_endpoints.py:184 |
class TestBannersHTML |
TestLoadBanners |
class | tests/test_report_banners_endpoints.py:125 |
class TestLoadBanners |
TestLoadJSONFileSafe |
class | tests/test_report_banners_endpoints.py:341 |
class TestLoadJSONFileSafe |
TestReportContext |
class | tests/test_report_banners_endpoints.py:217 |
class TestReportContext |
build_banners_html |
function | tests/test_report_banners_endpoints.py:95 |
def build_banners_html(banners) |
build_report_context |
function | tests/test_report_banners_endpoints.py:55 |
def build_report_context(report_file, session_file, tools_dir) |
load_banners |
function | tests/test_report_banners_endpoints.py:18 |
def load_banners(path) |
load_json_file_safe |
function | tests/test_report_banners_endpoints.py:38 |
def load_json_file_safe(path) |
test_dict_format |
method | tests/test_report_banners_endpoints.py:128 |
def test_dict_format(self, tmp_path) |
test_empty_banners |
method | tests/test_report_banners_endpoints.py:187 |
def test_empty_banners(self) |
test_empty_dict |
method | tests/test_report_banners_endpoints.py:146 |
def test_empty_dict(self, tmp_path) |
test_empty_file |
method | tests/test_report_banners_endpoints.py:163 |
def test_empty_file(self, tmp_path) |
test_empty_file |
method | tests/test_report_banners_endpoints.py:349 |
def test_empty_file(self, tmp_path) |
test_empty_session_file |
method | tests/test_report_banners_endpoints.py:236 |
def test_empty_session_file(self, tmp_path) |
test_empty_session_list |
method | tests/test_report_banners_endpoints.py:304 |
def test_empty_session_list(self, tmp_path) |
test_file_not_found |
method | tests/test_report_banners_endpoints.py:153 |
def test_file_not_found(self, tmp_path) |
test_file_not_found |
method | tests/test_report_banners_endpoints.py:354 |
def test_file_not_found(self, tmp_path) |
test_flat_list_format |
method | tests/test_report_banners_endpoints.py:169 |
def test_flat_list_format(self, tmp_path) |
Next: SYMBOLS_p39.md