feature/capability-based-deps (#53)
Reviewed-on: #53 Co-authored-by: David Gwilliam <dhgwilliam@gmail.com> Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>
This commit was merged in pull request #53.
This commit is contained in:
79
tests/test_figment_pipeline.py
Normal file
79
tests/test_figment_pipeline.py
Normal file
@@ -0,0 +1,79 @@
|
||||
"""
|
||||
Integration tests for figment effect in the pipeline.
|
||||
"""
|
||||
|
||||
from engine.effects.plugins import discover_plugins
|
||||
from engine.effects.registry import get_registry
|
||||
from engine.pipeline import Pipeline, PipelineConfig, get_preset
|
||||
from engine.pipeline.adapters import (
|
||||
EffectPluginStage,
|
||||
SourceItemsToBufferStage,
|
||||
create_stage_from_display,
|
||||
)
|
||||
from engine.pipeline.controller import PipelineRunner
|
||||
|
||||
|
||||
class TestFigmentPipeline:
|
||||
"""Tests for figment effect in pipeline integration."""
|
||||
|
||||
def setup_method(self):
|
||||
"""Discover plugins before each test."""
|
||||
discover_plugins()
|
||||
|
||||
def test_figment_in_pipeline(self):
|
||||
"""Figment effect can be added to pipeline."""
|
||||
registry = get_registry()
|
||||
figment = registry.get("figment")
|
||||
|
||||
pipeline = Pipeline(
|
||||
config=PipelineConfig(
|
||||
source="empty",
|
||||
display="null",
|
||||
camera="feed",
|
||||
effects=["figment"],
|
||||
)
|
||||
)
|
||||
|
||||
# Add source stage
|
||||
from engine.data_sources.sources import EmptyDataSource
|
||||
from engine.pipeline.adapters import DataSourceStage
|
||||
|
||||
empty_source = EmptyDataSource(width=80, height=24)
|
||||
pipeline.add_stage("source", DataSourceStage(empty_source, name="empty"))
|
||||
|
||||
# Add render stage
|
||||
pipeline.add_stage("render", SourceItemsToBufferStage(name="items-to-buffer"))
|
||||
|
||||
# Add figment effect stage
|
||||
pipeline.add_stage("effect_figment", EffectPluginStage(figment, name="figment"))
|
||||
|
||||
# Add display stage
|
||||
from engine.display import DisplayRegistry
|
||||
|
||||
display = DisplayRegistry.create("null")
|
||||
display.init(0, 0)
|
||||
pipeline.add_stage("display", create_stage_from_display(display, "null"))
|
||||
|
||||
# Build and initialize pipeline
|
||||
pipeline.build()
|
||||
assert pipeline.initialize()
|
||||
|
||||
# Use PipelineRunner to step through frames
|
||||
runner = PipelineRunner(pipeline)
|
||||
runner.start()
|
||||
|
||||
# Run pipeline for a few frames
|
||||
for i in range(10):
|
||||
runner.step()
|
||||
# Result might be None for null display, but that's okay
|
||||
|
||||
# Verify pipeline ran without errors
|
||||
assert pipeline.context.params.frame_number == 10
|
||||
|
||||
def test_figment_preset(self):
|
||||
"""Figment preset is properly configured."""
|
||||
preset = get_preset("test-figment")
|
||||
assert preset is not None
|
||||
assert preset.source == "empty"
|
||||
assert preset.display == "terminal"
|
||||
assert "figment" in preset.effects
|
||||
Reference in New Issue
Block a user