diff --git a/src/gnuradio_mcp/middlewares/block.py b/src/gnuradio_mcp/middlewares/block.py index 6a4a179..7effc6a 100644 --- a/src/gnuradio_mcp/middlewares/block.py +++ b/src/gnuradio_mcp/middlewares/block.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import Any, Dict + from gnuradio.grc.core.blocks.block import Block from gnuradio_mcp.models import SINK, SOURCE, ParamModel, PortModel @@ -13,8 +15,14 @@ class BlockMiddleware: def name(self) -> str: return self._block.name - # TODO: Check if rewrite is needed + def set_param(self, param_name: str, param_value: Any): + self._block.params[param_name].set_value(param_value) + def set_params(self, params: Dict[str, Any]): + for param_name, param_value in params.items(): + self.set_param(param_name, param_value) + + # TODO: Check if rewrite is needed @property def params(self) -> list[ParamModel]: return [ParamModel.from_param(param) for param in self._block.params.values()] diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test_block.py b/tests/unit/test_block.py similarity index 81% rename from tests/test_block.py rename to tests/unit/test_block.py index 090920b..fe2653d 100644 --- a/tests/test_block.py +++ b/tests/unit/test_block.py @@ -34,6 +34,16 @@ def test_block_middleware_sources(block_middleware: BlockMiddleware): check_port_models(block_middleware.sources, block_middleware._block.sources, SOURCE) +def test_block_middleware_set_param(block_middleware: BlockMiddleware): + block_middleware.set_param("id", "my_custom_block_name") + assert block_middleware._block.params["id"].get_value() == "my_custom_block_name" + + +def test_block_middleware_set_params(block_middleware: BlockMiddleware): + block_middleware.set_params({"id": "my_custom_block_name"}) + assert block_middleware._block.params["id"].get_value() == "my_custom_block_name" + + def check_param_models(block: Block, params: list[ParamModel]): assert params assert len(params) == len(block.params) diff --git a/tests/test_flowgraph.py b/tests/unit/test_flowgraph.py similarity index 100% rename from tests/test_flowgraph.py rename to tests/unit/test_flowgraph.py diff --git a/tests/test_platform.py b/tests/unit/test_platform.py similarity index 100% rename from tests/test_platform.py rename to tests/unit/test_platform.py