feat(plugins): isolate device integrations
This commit is contained in:
@@ -3,27 +3,15 @@ from __future__ import annotations
|
||||
import asyncio
|
||||
import json
|
||||
import threading
|
||||
from collections.abc import Mapping
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
import pytest
|
||||
from missioncore_plugin_sdk.v0alpha2 import RuntimeActionInvocation
|
||||
from pydantic import ValidationError
|
||||
|
||||
import k1link.web.device_plugin_composition as plugin_composition
|
||||
from k1link.web.device_plugin_composition import (
|
||||
DevicePluginCompositionError,
|
||||
InstalledDevicePluginEnvironment,
|
||||
load_installed_device_plugins,
|
||||
)
|
||||
from k1link.web.plugin_catalog import DevicePluginCatalog
|
||||
from k1link.web.plugin_runtime import (
|
||||
DevicePluginDispatcher,
|
||||
DevicePluginRuntimeContribution,
|
||||
PluginActionNotFoundError,
|
||||
PluginNotFoundError,
|
||||
)
|
||||
from k1link.web.xgrids_k1_facade import (
|
||||
from k1link.device_plugins.xgrids_k1.facade import (
|
||||
ACTION_DISCOVERY_SCAN,
|
||||
ACTION_NETWORK_PROVISION,
|
||||
ACTION_STREAM_START_LIVE,
|
||||
@@ -36,6 +24,18 @@ from k1link.web.xgrids_k1_facade import (
|
||||
ViewerSettingsRequest,
|
||||
XgridsK1PluginFacade,
|
||||
)
|
||||
from k1link.web.device_plugin_composition import (
|
||||
DevicePluginCompositionError,
|
||||
InstalledDevicePluginEnvironment,
|
||||
load_installed_device_plugins,
|
||||
)
|
||||
from k1link.web.plugin_catalog import DevicePluginCatalog
|
||||
from k1link.web.plugin_runtime import (
|
||||
DevicePluginDispatcher,
|
||||
DevicePluginRuntimeContribution,
|
||||
PluginActionNotFoundError,
|
||||
PluginNotFoundError,
|
||||
)
|
||||
|
||||
|
||||
class FakeXgridsService:
|
||||
@@ -139,11 +139,11 @@ def test_composition_loads_and_dispatches_two_synthetic_plugins(
|
||||
|
||||
async def invoke(
|
||||
self,
|
||||
action_id: str,
|
||||
payload: Mapping[str, Any],
|
||||
invocation: RuntimeActionInvocation,
|
||||
) -> dict[str, Any]:
|
||||
assert action_id == "state.read"
|
||||
assert payload == {}
|
||||
assert invocation.plugin_id == self.plugin_id
|
||||
assert invocation.action_id == "state.read"
|
||||
assert invocation.parameters == {}
|
||||
return {"plugin_id": self.plugin_id}
|
||||
|
||||
closed: list[str] = []
|
||||
|
||||
Reference in New Issue
Block a user