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 gnuradio.grc.core.platform import Platform
|
||||
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)
|
||||
from gnuradio_mcp.models import BlockModel
|
||||
|
||||
class PlatformMiddleware:
|
||||
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
|
||||
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:
|
||||
def __init__(self, label, key):
|
||||
self.label = label
|
||||
self.key = key
|
||||
@pytest.fixture
|
||||
def platform() -> Platform:
|
||||
platform = Platform(
|
||||
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():
|
||||
block = MockBlock(label="Test Block", key="test_key")
|
||||
def test_block_model_from_block(platform):
|
||||
block = Block(platform)
|
||||
model = BlockModel.from_block(block)
|
||||
assert model.label == "Test Block"
|
||||
assert model.key == "test_key"
|
||||
assert model.label == block.label
|
||||
assert model.key == block.key
|
||||
|
||||
def test_platform_middleware_blocks():
|
||||
blocks = [
|
||||
MockBlock(label="Block A", key="a"),
|
||||
MockBlock(label="Block B", key="b"),
|
||||
]
|
||||
platform = MockPlatform(blocks)
|
||||
|
||||
def test_platform_middleware_blocks(platform):
|
||||
middleware = PlatformMiddleware(platform)
|
||||
block_models = middleware.blocks
|
||||
assert len(block_models) == 2
|
||||
assert block_models[0].label == "Block A"
|
||||
assert block_models[0].key == "a"
|
||||
assert block_models[1].label == "Block B"
|
||||
assert block_models[1].key == "b"
|
||||
assert block_models # Checks that the list is not empty
|
||||
assert all(isinstance(block_model, BlockModel) for block_model in block_models)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user