Orchestrata Ultimate › Tests › Reference › plugin
Tests reference — tests/plugin
tests/plugin — 23 test modules, 315 test functions. Source tree: tests/plugin at commit 8a2cb42ad. Generated from the tests AST snapshot by scripts/gen-data-pages.py.
Prose pending.
Modules
| Module | Tests | Covers |
|---|---|---|
_example_volk_plugin.py |
0 | 1 |
test_config.py |
4 | 1 |
test_context_pure.py |
19 | 4 |
test_discovery.py |
4 | 3 |
test_discovery_extended.py |
17 | 7 |
test_exceptions.py |
12 | 1 |
test_governance.py |
15 | 4 |
test_install_plugin_git.py |
4 | 3 |
test_interfaces.py |
54 | 2 |
test_loader.py |
9 | 2 |
test_loader_extended.py |
24 | 3 |
test_manager.py |
7 | 5 |
test_manager_extended.py |
19 | 6 |
test_manifest.py |
12 | 2 |
test_plugin_config.py |
6 | 1 |
test_plugin_registration_wiring.py |
6 | 3 |
test_registration.py |
18 | 2 |
test_registration_extended.py |
39 | 2 |
test_registry.py |
22 | 5 |
test_sdk.py |
17 | 6 |
test_sdk_volk_registry_wiring.py |
3 | 3 |
test_tool_registry_adapter.py |
4 | 3 |
Module details
tests/plugin/_example_volk_plugin.py
source · 0 tests · 46 lines
A real reference plugin used by the SPEC-015 registration-wiring test.
Covers: plugin.manifest
tests/plugin/test_config.py
source · 4 tests · 85 lines
Tests for plugin.config.
Covers: plugin.config
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestPluginResourceLimits |
30 | |
| method | TestPluginResourceLimits.test_defaults |
31 | |
| class | TestPluginConfig |
38 | |
| method | TestPluginConfig.test_defaults |
39 | |
| method | TestPluginConfig.test_from_dict |
52 | |
| method | TestPluginConfig.test_from_dict_defaults |
81 |
tests/plugin/test_context_pure.py
source · 19 tests · 422 lines
Test Standards Compliance (see AGENTS.md § Test Standards):
Covers: plugin.context, plugin.exceptions, plugin.manifest, plugin.registries
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestPluginContextGetConfig |
56 | |
| method | TestPluginContextGetConfig.test_get_existing_key |
57 | |
| method | TestPluginContextGetConfig.test_get_missing_key_with_default |
68 | |
| method | TestPluginContextGetConfig.test_get_missing_key_no_default |
79 | |
| class | TestPluginContextResolve |
90 | |
| method | TestPluginContextResolve.test_resolve_with_capability |
91 | |
| method | TestPluginContextResolve.test_resolve_without_capability_raises |
102 | |
| class | TestPluginContextCleanup |
116 | |
| method | TestPluginContextCleanup.test_cleanup_clears_registrations |
117 | |
| method | TestPluginContextCleanup.test_cleanup_unregisters_from_wired_volk_registry |
142 | |
| class | TestPluginContextAttributes |
170 | |
| method | TestPluginContextAttributes.test_attributes_set_from_constructor |
171 | |
| method | TestPluginContextAttributes.test_plugin_dir_defaults_to_cwd |
183 | |
| class | TestPluginContextRegisterVolk |
194 | |
| method | TestPluginContextRegisterVolk.test_register_no_registry |
196 | |
| method | TestPluginContextRegisterVolk.test_register_with_registry |
214 | |
| class | TestPluginContextRegisterTool |
241 | |
| method | TestPluginContextRegisterTool.test_register_no_registry |
243 | |
| method | TestPluginContextRegisterTool.test_register_with_registry |
261 | |
| class | TestPluginContextRegisterChannel |
287 | |
| method | TestPluginContextRegisterChannel.test_register_no_registry |
289 | |
| method | TestPluginContextRegisterChannel.test_register_with_registry |
310 | |
| class | TestPluginContextSubscribeEvent |
339 | |
| method | TestPluginContextSubscribeEvent.test_subscribe_no_bus |
341 | |
| method | TestPluginContextSubscribeEvent.test_subscribe_with_bus |
359 | |
| class | TestPluginContextEmitEvent |
388 | |
| method | TestPluginContextEmitEvent.test_emit_no_bus |
390 | |
| method | TestPluginContextEmitEvent.test_emit_with_bus |
403 |
tests/plugin/test_discovery.py
source · 4 tests · 79 lines
Tests for plugin.discovery.
Covers: plugin.discovery, plugin.exceptions, plugin.registry
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_discover_plugins_calls_loader |
43 | |
| class | TestInstallPlugin |
52 | |
| method | TestInstallPlugin.test_install_from_local_dir |
53 | |
| method | TestInstallPlugin.test_install_from_nonexistent_raises |
66 | |
| method | TestInstallPlugin.test_install_from_file_raises |
74 |
tests/plugin/test_discovery_extended.py
source · 17 tests · 246 lines
Extended tests for plugin.discovery — async lifecycle functions.
Covers: plugin.context, plugin.discovery, plugin.exceptions, plugin.interfaces, plugin.loader, plugin.manifest, plugin.registry
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestDiscoverPlugins |
74 | |
| method | TestDiscoverPlugins.test_discover_plugins_empty |
75 | |
| method | TestDiscoverPlugins.test_discover_plugins_with_local |
80 | |
| class | TestInstallPlugin |
96 | |
| method | TestInstallPlugin.test_install_from_local_dir |
97 | |
| method | TestInstallPlugin.test_install_nonexistent_raises |
107 | |
| method | TestInstallPlugin.test_install_file_raises |
113 | |
| class | TestUninstallPlugin |
120 | |
| method | TestUninstallPlugin.test_uninstall_existing |
122 | |
| method | TestUninstallPlugin.test_uninstall_with_plugin_calls_stop |
128 | |
| method | TestUninstallPlugin.test_uninstall_not_found_raises |
141 | |
| class | TestEnablePlugin |
146 | |
| method | TestEnablePlugin.test_enable_disabled_plugin |
148 | |
| method | TestEnablePlugin.test_enable_already_active_noop |
169 | |
| method | TestEnablePlugin.test_enable_not_found_raises |
176 | |
| class | TestDisablePlugin |
181 | |
| method | TestDisablePlugin.test_disable_active_plugin |
183 | |
| method | TestDisablePlugin.test_disable_not_found_raises |
197 | |
| class | TestUnloadPlugin |
202 | |
| method | TestUnloadPlugin.test_unload_loaded_plugin |
204 | |
| method | TestUnloadPlugin.test_unload_not_loaded_raises |
217 | |
| class | TestReloadPlugin |
222 | |
| method | TestReloadPlugin.test_reload_existing |
224 | |
| method | TestReloadPlugin.test_reload_not_found_raises |
244 |
tests/plugin/test_exceptions.py
source · 12 tests · 99 lines
Tests for plugin exceptions.
Covers: plugin.exceptions
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestPluginExceptions |
39 | Tests for plugin exception hierarchy. |
| method | TestPluginExceptions.test_plugin_error_default |
42 | |
| method | TestPluginExceptions.test_plugin_error_with_context |
47 | |
| method | TestPluginExceptions.test_plugin_error_is_base_exception |
52 | |
| method | TestPluginExceptions.test_plugin_manifest_error |
56 | |
| method | TestPluginExceptions.test_plugin_load_error |
61 | |
| method | TestPluginExceptions.test_plugin_lifecycle_error |
66 | |
| method | TestPluginExceptions.test_plugin_dependency_error |
71 | |
| method | TestPluginExceptions.test_plugin_circular_dependency_error |
76 | |
| method | TestPluginExceptions.test_capability_denied_error |
81 | |
| method | TestPluginExceptions.test_plugin_config_error |
86 | |
| method | TestPluginExceptions.test_plugin_not_found_error |
91 | |
| method | TestPluginExceptions.test_plugin_registration_error |
96 |
tests/plugin/test_governance.py
source · 15 tests · 136 lines
Tests for plugin.governance module.
Covers: plugin.config, plugin.governance, plugin.interfaces, plugin.manifest
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_is_plugin_allowed_open_mode |
49 | |
| function | test_is_plugin_allowed_blocklisted |
53 | |
| function | test_is_plugin_allowed_explicit_allowed |
57 | |
| function | test_is_plugin_allowed_explicit_denied |
61 | |
| function | test_is_capability_granted_when_declared |
70 | |
| function | test_is_capability_granted_when_not_declared |
74 | |
| function | test_is_capability_granted_empty_list |
78 | |
| function | test_can_register_volk_unreserved |
87 | |
| function | test_can_register_volk_reserved |
91 | |
| function | test_can_register_tool_unreserved |
101 | |
| function | test_can_register_tool_reserved |
105 | |
| function | test_get_resource_limit_memory |
116 | |
| function | test_get_resource_limit_api_calls |
122 | |
| function | test_get_resource_limit_events |
128 | |
| function | test_get_resource_limit_invalid_type |
134 |
tests/plugin/test_install_plugin_git.py
source · 4 tests · 107 lines
SPEC-015 plugin install from git:
install_pluginclones a real git
Covers: plugin.discovery, plugin.exceptions, plugin.registry
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_install_plugin_from_git |
59 | |
| function | test_install_plugin_from_git_is_idempotent |
78 | |
| function | test_install_plugin_rejects_unsupported_source |
90 | |
| function | test_install_plugin_git_clone_failure_is_reported |
98 |
tests/plugin/test_interfaces.py
source · 54 tests · 754 lines
Tests for orchestrata_ultimate.plugin.interfaces.
Covers: plugin.interfaces, core.interfaces/ (package)
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_plugin_capability_values |
54 | |
| function | test_plugin_capability_membership_and_count |
66 | |
| function | test_plugin_capability_lookup_by_value |
81 | |
| function | test_plugin_capability_invalid_value_raises |
86 | |
| function | test_plugin_status_values |
96 | |
| function | test_plugin_status_membership_and_count |
104 | |
| function | test_plugin_status_lookup_by_value |
115 | |
| function | test_plugin_status_invalid_value_raises |
119 | |
| function | test_resource_type_values |
129 | |
| function | test_resource_type_is_a_real_str_subclass |
135 | StrEnum members compare equal to plain strings directly (no .value |
| function | test_resource_type_lookup_by_value |
144 | |
| function | test_resource_type_invalid_value_raises |
148 | |
| function | test_resource_type_membership_and_count |
153 | |
| function | test_plugin_resource_usage_defaults |
167 | |
| function | test_plugin_resource_usage_custom_values |
175 | |
| function | test_plugin_resource_usage_equality_by_value |
188 | |
| function | test_plugin_info_requires_name_and_version |
202 | |
| function | test_plugin_info_defaults |
211 | |
| function | test_plugin_info_default_factories_are_independent_per_instance |
227 | Regression guard for the classic dataclass mutable-default trap: |
| function | test_plugin_info_full_construction_and_field_readback |
250 | |
| function | test_plugin_info_error_status_with_message |
283 | |
| function | test_protocol_cannot_be_instantiated |
327 | |
| function | test_protocol_is_not_runtime_checkable |
333 | None of these protocols carry (or inherit) @runtime_checkable, so |
| function | test_ipluginmanager_inherits_runtime_checkable_from_icomponent |
341 | IPluginManager itself is declared with no @runtime_checkable, but |
| function | test_ipluginmanager_isinstance_never_matches_a_real_implementation |
412 | Structural isinstance() checks against IPluginManager fold in every |
| function | test_ipluginmanager_isinstance_matches_once_traces_attr_is_present |
431 | Proves why the previous test is False: adding the otherwise |
| function | test_ivolk_registry_has_register_volk |
460 | |
| function | test_ivolk_registry_register_volk_body_is_a_noop |
475 | |
| function | test_itool_registry_has_register_tool |
489 | |
| function | test_itool_registry_register_tool_body_is_a_noop |
499 | |
| function | test_iprovider_registry_has_register_provider |
515 | |
| function | test_iprovider_registry_register_provider_body_is_a_noop |
534 | |
| function | test_ichannel_registry_has_register_channel |
545 | |
| function | test_ichannel_registry_register_channel_body_is_a_noop |
555 | |
| function | test_ievent_bus_has_subscribe_and_emit |
572 | |
| function | test_ievent_bus_subscribe_body_returns_none_despite_str_annotation |
584 | subscribe() is annotated -> str (a subscription id) but the |
| function | test_ievent_bus_emit_body_is_a_noop |
598 | |
| function | test_iplugin_has_lifecycle_methods |
609 | |
| function | test_iplugin_initialize_body_is_a_noop |
625 | |
| function | test_iplugin_start_body_is_a_noop |
631 | |
| function | test_iplugin_stop_body_is_a_noop |
637 | |
| function | test_iplugin_get_manifest_is_sync_and_body_is_a_noop |
643 | Unlike the rest of IPlugin, get_manifest() is a plain (non-async) |
| function | test_ipluginmanager_has_full_lifecycle_and_registry_surface |
657 | |
| function | test_ipluginmanager_inherits_icomponent |
675 | |
| function | test_ipluginmanager_discover_plugins_body_is_a_noop |
697 | |
| function | test_ipluginmanager_load_plugin_body_is_a_noop |
703 | |
| function | test_ipluginmanager_unload_plugin_body_is_a_noop |
709 | |
| function | test_ipluginmanager_reload_plugin_body_is_a_noop |
715 | |
| function | test_ipluginmanager_get_plugin_is_sync_and_body_is_a_noop |
721 | |
| function | test_ipluginmanager_list_plugins_is_sync_and_body_is_a_noop |
727 | |
| function | test_ipluginmanager_enable_plugin_body_is_a_noop |
733 | |
| function | test_ipluginmanager_disable_plugin_body_is_a_noop |
739 | |
| function | test_ipluginmanager_install_plugin_body_is_a_noop |
745 | |
| function | test_ipluginmanager_uninstall_plugin_body_is_a_noop |
751 |
tests/plugin/test_loader.py
source · 9 tests · 85 lines
Test Standards Compliance (see AGENTS.md § Test Standards):
Covers: plugin.loader, plugin.manifest
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestPluginLoaderConstruction |
29 | |
| method | TestPluginLoaderConstruction.test_default_dirs |
30 | |
| method | TestPluginLoaderConstruction.test_custom_dirs |
34 | |
| method | TestPluginLoaderConstruction.test_default_prefixes |
38 | |
| class | TestValidateModulePath |
43 | |
| method | TestValidateModulePath.test_allowed_prefix |
44 | |
| method | TestValidateModulePath.test_blocked_segment_raises |
48 | |
| method | TestValidateModulePath.test_no_allowed_prefix_raises |
53 | |
| class | TestPluginLoaderTopologicalSort |
59 | |
| method | TestPluginLoaderTopologicalSort.test_empty_list |
60 | |
| method | TestPluginLoaderTopologicalSort.test_single_plugin |
65 | |
| method | TestPluginLoaderTopologicalSort.test_linear_dependencies |
73 |
tests/plugin/test_loader_extended.py
source · 24 tests · 417 lines
Extended tests for plugin.loader — discover_local, discover_installed,
Covers: plugin.exceptions, plugin.loader, plugin.manifest
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestDiscoverLocal |
69 | |
| method | TestDiscoverLocal.test_empty_dirs |
70 | |
| method | TestDiscoverLocal.test_skips_non_directories |
75 | |
| method | TestDiscoverLocal.test_skips_dirs_without_manifest |
83 | |
| method | TestDiscoverLocal.test_discovers_valid_plugin |
91 | |
| method | TestDiscoverLocal.test_skips_invalid_manifest |
105 | |
| method | TestDiscoverLocal.test_multiple_plugins_sorted |
115 | |
| class | TestDiscoverInstalled |
129 | Real pip-entry-point discovery, exercised via genuine dist-info metadata. |
| method | TestDiscoverInstalled.test_no_entry_points_returns_empty |
132 | |
| method | TestDiscoverInstalled.test_discovers_valid_entry_point |
137 | |
| method | TestDiscoverInstalled.test_entry_point_without_get_manifest_is_skipped |
170 | |
| method | TestDiscoverInstalled.test_entry_point_load_failure_is_skipped |
191 | |
| method | TestDiscoverInstalled.test_entry_points_query_failure_returns_empty |
213 | |
| class | TestDiscoverAll |
237 | |
| method | TestDiscoverAll.test_local_only |
238 | |
| method | TestDiscoverAll.test_deduplicates_local_over_installed |
251 | |
| method | TestDiscoverAll.test_installed_included_when_no_local_conflict |
264 | |
| class | TestLoadPluginClass |
295 | |
| method | TestLoadPluginClass.test_invalid_format_raises |
296 | |
| method | TestLoadPluginClass.test_import_error_raises |
306 | |
| method | TestLoadPluginClass.test_class_not_found_raises |
316 | |
| method | TestLoadPluginClass.test_loads_existing_class |
341 | |
| class | TestTopologicalSort |
367 | |
| method | TestTopologicalSort.test_empty_list |
368 | |
| method | TestTopologicalSort.test_single_plugin |
371 | |
| method | TestTopologicalSort.test_linear_dependencies |
375 | |
| method | TestTopologicalSort.test_circular_dependency_raises |
386 | |
| method | TestTopologicalSort.test_missing_dependency_raises |
398 | |
| method | TestTopologicalSort.test_already_visited_skipped |
407 |
tests/plugin/test_manager.py
source · 7 tests · 117 lines
Test Standards Compliance (see AGENTS.md § Test Standards):
Covers: plugin.context, plugin.exceptions, plugin.manager, plugin.manifest, core.interfaces/ (package)
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestPluginManagerConstruction |
32 | |
| method | TestPluginManagerConstruction.test_default_init |
33 | |
| method | TestPluginManagerConstruction.test_get_metadata |
38 | |
| method | TestPluginManagerConstruction.test_get_health_not_started |
44 | |
| class | TestPluginManagerUnload |
67 | |
| method | TestPluginManagerUnload.test_unload_loaded_plugin |
69 | |
| method | TestPluginManagerUnload.test_unload_not_found_raises |
85 | |
| class | TestPluginManagerReload |
93 | |
| method | TestPluginManagerReload.test_reload_stops_old_plugin |
95 | |
| method | TestPluginManagerReload.test_reload_not_found_raises |
112 |
tests/plugin/test_manager_extended.py
source · 19 tests · 246 lines
Extended tests for plugin.manager — full lifecycle and delegation.
Covers: plugin.context, plugin.exceptions, plugin.interfaces, plugin.manager, plugin.manifest, core.interfaces/ (package)
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestPluginManagerLifecycle |
52 | |
| method | TestPluginManagerLifecycle.test_initialize_empty_config |
54 | |
| method | TestPluginManagerLifecycle.test_initialize_with_config |
59 | |
| method | TestPluginManagerLifecycle.test_start_stop_no_plugins |
64 | |
| method | TestPluginManagerLifecycle.test_start_with_active_plugin |
72 | |
| method | TestPluginManagerLifecycle.test_start_error_sets_error_status |
90 | |
| class | TestPluginManagerHealth |
115 | |
| method | TestPluginManagerHealth.test_health_uninitialized |
117 | |
| method | TestPluginManagerHealth.test_health_healthy |
121 | |
| method | TestPluginManagerHealth.test_health_degraded |
127 | |
| class | TestPluginManagerMetadata |
143 | |
| method | TestPluginManagerMetadata.test_metadata |
144 | |
| class | TestPluginManagerDiscovery |
150 | |
| method | TestPluginManagerDiscovery.test_discover_plugins_empty |
152 | |
| method | TestPluginManagerDiscovery.test_discover_plugins_with_dir |
157 | |
| class | TestPluginManagerLoad |
171 | |
| method | TestPluginManagerLoad.test_load_not_discovered_raises |
173 | |
| method | TestPluginManagerLoad.test_list_plugins_empty |
179 | |
| method | TestPluginManagerLoad.test_get_plugin_none |
183 | |
| class | TestPluginManagerInstallUninstall |
187 | |
| method | TestPluginManagerInstallUninstall.test_install_and_uninstall |
189 | |
| method | TestPluginManagerInstallUninstall.test_uninstall_not_found_raises |
202 | |
| class | TestPluginManagerEnableDisable |
207 | |
| method | TestPluginManagerEnableDisable.test_disable_plugin |
209 | |
| method | TestPluginManagerEnableDisable.test_enable_plugin |
230 | |
| method | TestPluginManagerEnableDisable.test_disable_not_found_raises |
244 |
tests/plugin/test_manifest.py
source · 12 tests · 145 lines
Tests for plugin/manifest.py — real implementation.
Covers: plugin.exceptions, plugin.manifest
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestKGSchemaExtension |
31 | |
| method | TestKGSchemaExtension.test_defaults |
32 | |
| class | TestPluginManifestFromDict |
41 | |
| method | TestPluginManifestFromDict.test_minimal_valid |
42 | |
| method | TestPluginManifestFromDict.test_full_valid |
53 | |
| method | TestPluginManifestFromDict.test_missing_required_fields |
79 | |
| method | TestPluginManifestFromDict.test_missing_name |
83 | |
| method | TestPluginManifestFromDict.test_invalid_name |
87 | |
| method | TestPluginManifestFromDict.test_invalid_version |
97 | |
| method | TestPluginManifestFromDict.test_invalid_capability |
107 | |
| class | TestPluginManifestFromYaml |
119 | |
| method | TestPluginManifestFromYaml.test_valid_yaml |
120 | |
| method | TestPluginManifestFromYaml.test_missing_file |
131 | |
| method | TestPluginManifestFromYaml.test_malformed_yaml |
135 | |
| method | TestPluginManifestFromYaml.test_non_dict_yaml |
141 |
tests/plugin/test_plugin_config.py
source · 6 tests · 80 lines
Tests for plugin.config dataclasses.
Covers: plugin.config
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_plugin_resource_limits_defaults |
29 | |
| function | test_plugin_config_defaults |
36 | |
| function | test_plugin_config_from_dict_minimal |
49 | |
| function | test_plugin_config_from_dict_with_limits |
57 | |
| function | test_plugin_config_from_dict_with_prefixes |
71 | |
| function | test_plugin_config_from_dict_preserves_none_prefixes |
77 |
tests/plugin/test_plugin_registration_wiring.py
source · 6 tests · 140 lines
SPEC-015 runtime: a loaded plugin's
register_volkreaches a wired registry.
Covers: plugin.config, plugin.manager, plugin.registries
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_loaded_plugin_registers_volk_into_wired_registry |
34 | |
| function | test_unload_plugin_unregisters_its_volk_from_the_registry |
51 | |
| function | test_register_volk_is_noop_without_registry |
71 | |
| function | test_volk_registry_is_queryable |
82 | |
| function | test_volk_registry_unregister_removes_the_alias |
120 | |
| function | test_volk_registry_unregister_unknown_alias_is_not_an_error |
136 |
tests/plugin/test_registration.py
source · 18 tests · 297 lines
Tests for plugin.registration helpers.
Covers: plugin.exceptions, plugin.registration
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestRegisterVolk |
40 | |
| method | TestRegisterVolk.test_register_no_registry |
41 | |
| method | TestRegisterVolk.test_duplicate_raises |
50 | |
| class | TestRegisterTool |
58 | |
| method | TestRegisterTool.test_register_no_registry |
59 | |
| method | TestRegisterTool.test_duplicate_raises |
74 | |
| class | TestRegisterProvider |
89 | |
| method | TestRegisterProvider.test_register_no_registry |
90 | |
| method | TestRegisterProvider.test_duplicate_raises |
98 | |
| class | TestRegisterChannel |
106 | |
| method | TestRegisterChannel.test_register_no_registry |
107 | |
| method | TestRegisterChannel.test_duplicate_raises |
121 | |
| class | TestRegisterRules |
135 | |
| method | TestRegisterRules.test_register_rules |
136 | |
| class | TestSubscribeEvent |
144 | |
| method | TestSubscribeEvent.test_subscribe_no_bus |
145 | |
| class | TestEmitEvent |
155 | |
| method | TestEmitEvent.test_emit_no_bus |
156 | |
| method | TestEmitEvent.test_emit_with_bus |
161 | |
| class | TestRegisterKGSchema |
177 | |
| method | TestRegisterKGSchema.test_register_kg_schema |
178 | |
| class | TestSubscribeEventWithBus |
184 | |
| method | TestSubscribeEventWithBus.test_subscribe_with_bus |
185 | |
| class | TestRegisterVolkWithRegistry |
205 | |
| method | TestRegisterVolkWithRegistry.test_register_with_registry |
206 | |
| class | TestRegisterToolWithRegistry |
229 | |
| method | TestRegisterToolWithRegistry.test_register_with_registry |
230 | |
| class | TestRegisterProviderWithRegistry |
255 | |
| method | TestRegisterProviderWithRegistry.test_register_with_registry |
256 | |
| class | TestRegisterChannelWithRegistry |
277 | |
| method | TestRegisterChannelWithRegistry.test_register_with_registry |
278 |
tests/plugin/test_registration_extended.py
source · 39 tests · 514 lines
Extended tests for plugin.registration — edge cases, state, errors, logs.
Covers: plugin.exceptions, plugin.registration
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestRegisterVolkExtended |
97 | |
| method | TestRegisterVolkExtended.test_register_multiple_volks |
98 | |
| method | TestRegisterVolkExtended.test_register_no_registry_logs_warning |
128 | |
| method | TestRegisterVolkExtended.test_duplicate_error_context |
136 | |
| method | TestRegisterVolkExtended.test_handler_passed_to_registry |
149 | |
| method | TestRegisterVolkExtended.test_info_log_on_success |
161 | |
| class | TestRegisterToolExtended |
178 | |
| method | TestRegisterToolExtended.test_qualified_name_format |
179 | |
| method | TestRegisterToolExtended.test_register_multiple_tools |
189 | |
| method | TestRegisterToolExtended.test_duplicate_qualified_name |
204 | |
| method | TestRegisterToolExtended.test_no_registry_logs_warning |
215 | |
| method | TestRegisterToolExtended.test_schema_and_handler_passed_to_registry |
225 | |
| class | TestRegisterProviderExtended |
240 | |
| method | TestRegisterProviderExtended.test_register_multiple_providers |
241 | |
| method | TestRegisterProviderExtended.test_duplicate_error_context |
249 | |
| method | TestRegisterProviderExtended.test_no_registry_logs_warning |
258 | |
| method | TestRegisterProviderExtended.test_provider_instance_passed_to_registry |
266 | |
| method | TestRegisterProviderExtended.test_info_log_on_success |
274 | |
| class | TestRegisterChannelExtended |
283 | |
| method | TestRegisterChannelExtended.test_register_multiple_channels |
284 | |
| method | TestRegisterChannelExtended.test_duplicate_error_context |
296 | |
| method | TestRegisterChannelExtended.test_no_registry_logs_warning |
307 | |
| method | TestRegisterChannelExtended.test_handlers_passed_to_registry |
317 | |
| method | TestRegisterChannelExtended.test_info_log_on_success |
333 | |
| class | TestRegisterRulesExtended |
344 | |
| method | TestRegisterRulesExtended.test_register_multiple_rules |
345 | |
| method | TestRegisterRulesExtended.test_register_empty_rules |
353 | |
| method | TestRegisterRulesExtended.test_rules_appended_to_existing |
361 | |
| class | TestRegisterKGSchemaExtended |
368 | |
| method | TestRegisterKGSchemaExtended.test_register_empty_schema |
369 | |
| method | TestRegisterKGSchemaExtended.test_register_multiple_types |
376 | |
| class | TestSubscribeEventExtended |
384 | |
| method | TestSubscribeEventExtended.test_subscribe_no_bus_generates_uuid |
385 | |
| method | TestSubscribeEventExtended.test_subscribe_no_bus_logs_warning |
394 | |
| method | TestSubscribeEventExtended.test_subscribe_with_bus_returns_bus_id |
402 | |
| method | TestSubscribeEventExtended.test_subscribe_logs_info |
411 | |
| method | TestSubscribeEventExtended.test_multiple_subscriptions |
419 | |
| class | TestEmitEventExtended |
430 | |
| method | TestEmitEventExtended.test_emit_namespaces_event |
431 | |
| method | TestEmitEventExtended.test_emit_no_bus_logs_warning |
437 | |
| method | TestEmitEventExtended.test_emit_logs_info |
444 | |
| method | TestEmitEventExtended.test_emit_empty_payload |
451 | |
| method | TestEmitEventExtended.test_emit_with_different_plugins |
457 | |
| class | TestRegistrationStateManagement |
468 | |
| method | TestRegistrationStateManagement.test_lists_are_mutated_in_place |
469 | |
| method | TestRegistrationStateManagement.test_separate_plugins_isolated_state |
486 | |
| method | TestRegistrationStateManagement.test_registered_items_not_removed_on_subsequent_call |
495 | |
| method | TestRegistrationStateManagement.test_tool_qualification_prevents_same_name_twice |
502 |
tests/plugin/test_registry.py
source · 22 tests · 191 lines
Tests for plugin.registry.
Covers: plugin.context, plugin.exceptions, plugin.interfaces, plugin.manifest, plugin.registry
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestPluginRegistryRegister |
68 | |
| method | TestPluginRegistryRegister.test_register_plugin |
69 | |
| method | TestPluginRegistryRegister.test_register_duplicate_raises |
75 | |
| method | TestPluginRegistryRegister.test_register_discovered |
81 | |
| method | TestPluginRegistryRegister.test_register_discovered_does_not_overwrite |
87 | |
| class | TestPluginRegistryUnregister |
95 | |
| method | TestPluginRegistryUnregister.test_unregister_plugin |
96 | |
| method | TestPluginRegistryUnregister.test_unregister_not_found_raises |
103 | |
| class | TestPluginRegistryGetters |
108 | |
| method | TestPluginRegistryGetters.test_get_plugin |
109 | |
| method | TestPluginRegistryGetters.test_get_plugin_none |
114 | |
| method | TestPluginRegistryGetters.test_get_info |
117 | |
| method | TestPluginRegistryGetters.test_get_info_none |
125 | |
| method | TestPluginRegistryGetters.test_get_manifest |
128 | |
| method | TestPluginRegistryGetters.test_get_manifest_none |
133 | |
| method | TestPluginRegistryGetters.test_get_context |
136 | |
| method | TestPluginRegistryGetters.test_get_context_none |
141 | |
| class | TestPluginRegistryList |
145 | |
| method | TestPluginRegistryList.test_list_plugins_empty |
146 | |
| method | TestPluginRegistryList.test_list_plugins |
149 | |
| class | TestPluginRegistrySetStatus |
159 | |
| method | TestPluginRegistrySetStatus.test_set_status |
160 | |
| method | TestPluginRegistrySetStatus.test_set_status_not_found |
168 | |
| class | TestPluginRegistryContains |
173 | |
| method | TestPluginRegistryContains.test_contains_true |
174 | |
| method | TestPluginRegistryContains.test_contains_false |
179 | |
| class | TestPluginRegistryCount |
183 | |
| method | TestPluginRegistryCount.test_count_empty |
184 | |
| method | TestPluginRegistryCount.test_count_multiple |
187 |
tests/plugin/test_sdk.py
source · 17 tests · 218 lines
Tests for PluginSDK facade.
Covers: plugin.config, plugin.context, plugin.exceptions, plugin.interfaces, plugin.manifest, plugin.sdk
| Kind | Name | Line | Description |
|---|---|---|---|
| class | TestPluginSDK |
34 | Tests for PluginSDK. |
| method | TestPluginSDK.test_init_default |
37 | |
| method | TestPluginSDK.test_init_with_config |
41 | |
| method | TestPluginSDK.test_info_not_found |
46 | |
| method | TestPluginSDK.test_list_all_empty |
50 | |
| method | TestPluginSDK.test_active_plugins_empty |
54 | |
| method | TestPluginSDK.test_active_plugins_filters |
58 | |
| method | TestPluginSDK.test_active_plugins_ignores_inactive |
74 | |
| method | TestPluginSDK.test_discover_empty |
88 | |
| method | TestPluginSDK.test_start_all |
94 | |
| method | TestPluginSDK.test_stop_all |
100 | |
| class | TestPluginSDKLoad |
124 | |
| method | TestPluginSDKLoad.test_load_not_found_raises |
126 | |
| class | TestPluginSDKUnload |
132 | |
| method | TestPluginSDKUnload.test_unload |
134 | |
| class | TestPluginSDKReload |
149 | |
| method | TestPluginSDKReload.test_reload_stops_old_plugin |
151 | |
| class | TestPluginSDKEnable |
166 | |
| method | TestPluginSDKEnable.test_enable_noop_when_not_disabled |
168 | |
| class | TestPluginSDKDisable |
178 | |
| method | TestPluginSDKDisable.test_disable |
180 | |
| class | TestPluginSDKInstall |
197 | |
| method | TestPluginSDKInstall.test_install |
199 | |
| class | TestPluginSDKUninstall |
211 | |
| method | TestPluginSDKUninstall.test_uninstall |
213 |
tests/plugin/test_sdk_volk_registry_wiring.py
source · 3 tests · 56 lines
Wiring tests for A3: PluginSDK constructs a real VolkRegistry.
Covers: plugin.config, plugin.registries, plugin.sdk
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_plugin_sdk_constructs_real_volk_registry |
29 | PluginSDK() always builds a real, queryable VolkRegistry by default. |
| function | test_plugin_sdk_threads_its_volk_registry_into_the_manager |
36 | The same VolkRegistry instance backs both the SDK and its PluginManager. |
| function | test_plugin_sdk_loaded_plugin_registers_volk_into_sdk_registry |
42 | A plugin loaded through the SDK facade lands its Volk in sdk.volk_registry. |
tests/plugin/test_tool_registry_adapter.py
source · 4 tests · 78 lines
Wiring tests for
ToolRegistryAdapter: SPEC-015 kernel boot wires the
Covers: plugin.registries, tools.base, tools.registry
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_register_tool_lands_a_dispatchable_tool_in_the_real_registry |
31 | |
| function | test_registered_tool_normalizes_a_plain_return_value_to_tool_result |
52 | |
| function | test_registered_tool_passes_through_an_explicit_tool_result |
62 | |
| function | test_register_tool_replaces_an_existing_registration |
72 |
Support files
Fixtures, package markers and helpers without test functions.