main - feat: Add real gnuradio data to tests
This commit is contained in:
parent
377dab4ff9
commit
eb0d9fd6be
@ -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):
|
||||||
|
|||||||
11
src/gnuradio_mcp/models.py
Normal file
11
src/gnuradio_mcp/models.py
Normal 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)
|
||||||
@ -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"
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user