main - feat: Add real gnuradio data to tests

This commit is contained in:
Yoel Bassin 2025-04-26 16:08:09 +03:00
parent 377dab4ff9
commit eb0d9fd6be
3 changed files with 32 additions and 32 deletions

View File

@ -1,16 +1,7 @@
from typing import List from typing import List
from gnuradio.grc.core.platform import Platform from gnuradio.grc.core.platform import Platform
from pydantic import BaseModel
from gnuradio.grc.core.blocks.block import Block from gnuradio_mcp.models import BlockModel
class BlockModel(BaseModel):
label: str
key: str
@classmethod
def from_block(cls, block: Block) -> "BlockModel":
return cls(label=block.label, key=block.key)
class PlatformMiddleware: class PlatformMiddleware:
def __init__(self, platform: Platform): def __init__(self, platform: Platform):

View File

@ -0,0 +1,11 @@
from pydantic import BaseModel
from gnuradio.grc.core.blocks.block import Block
class BlockModel(BaseModel):
label: str
key: str
@classmethod
def from_block(cls, block: Block) -> "BlockModel":
return cls(label=block.label, key=block.key)

View File

@ -1,31 +1,29 @@
import pytest import pytest
from gnuradio_mcp.middlewares.platform import BlockModel, PlatformMiddleware from gnuradio_mcp.middlewares.platform import BlockModel, PlatformMiddleware
from gnuradio.grc.core.blocks.block import Block
from gnuradio.grc.core.platform import Platform
from gnuradio import gr
class MockBlock: @pytest.fixture
def __init__(self, label, key): def platform() -> Platform:
self.label = label platform = Platform(
self.key = key version=gr.version(),
version_parts=(gr.major_version(), gr.api_version(), gr.minor_version()),
prefs=gr.prefs(),
)
platform.build_library()
return platform
class MockPlatform:
def __init__(self, blocks):
self.blocks = {block.key: block for block in blocks}
def test_block_model_from_block(): def test_block_model_from_block(platform):
block = MockBlock(label="Test Block", key="test_key") block = Block(platform)
model = BlockModel.from_block(block) model = BlockModel.from_block(block)
assert model.label == "Test Block" assert model.label == block.label
assert model.key == "test_key" assert model.key == block.key
def test_platform_middleware_blocks():
blocks = [ def test_platform_middleware_blocks(platform):
MockBlock(label="Block A", key="a"),
MockBlock(label="Block B", key="b"),
]
platform = MockPlatform(blocks)
middleware = PlatformMiddleware(platform) middleware = PlatformMiddleware(platform)
block_models = middleware.blocks block_models = middleware.blocks
assert len(block_models) == 2 assert block_models # Checks that the list is not empty
assert block_models[0].label == "Block A" assert all(isinstance(block_model, BlockModel) for block_model in block_models)
assert block_models[0].key == "a"
assert block_models[1].label == "Block B"
assert block_models[1].key == "b"