mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
81 lines
2.6 KiB
Python
81 lines
2.6 KiB
Python
from unittest import mock
|
|
|
|
import pyqtgraph as pg
|
|
import pytest
|
|
|
|
from bec_widgets.widgets.plots.image.image_base import ImageLayerManager
|
|
from bec_widgets.widgets.plots.image.image_item import ImageItem
|
|
|
|
|
|
@pytest.fixture()
|
|
def image_layer_manager():
|
|
"""Fixture to create an instance of ImageLayer."""
|
|
layer = ImageLayerManager(parent=None, plot_item=mock.MagicMock(spec=pg.PlotItem))
|
|
yield layer
|
|
layer.clear()
|
|
|
|
|
|
def test_image_layer_manager_initialization(image_layer_manager):
|
|
"""Test the initialization of the ImageLayer."""
|
|
assert isinstance(image_layer_manager, ImageLayerManager)
|
|
assert image_layer_manager.plot_item is not None
|
|
|
|
|
|
def test_add_image_layer(image_layer_manager):
|
|
"""Test adding an image layer to the ImageLayerManager."""
|
|
layer = image_layer_manager.add(name="Test Layer")
|
|
assert layer.image.zValue() == 0
|
|
|
|
layer2 = image_layer_manager.add(name="Test Layer 2")
|
|
assert layer2.image.zValue() == 1
|
|
|
|
layer3 = image_layer_manager.add(name="Test Layer 3", z_position="top")
|
|
assert layer3.image.zValue() == 2
|
|
|
|
layer4 = image_layer_manager.add(name="Test Layer 4", z_position="bottom")
|
|
assert layer4.image.zValue() == -1
|
|
|
|
|
|
def test_remove_image_layer(image_layer_manager):
|
|
"""Test removing an image layer from the ImageLayerManager."""
|
|
layer = image_layer_manager.add(name="Test Layer")
|
|
assert len(image_layer_manager) == 1
|
|
|
|
image_layer_manager.remove(layer)
|
|
assert len(image_layer_manager) == 0
|
|
|
|
|
|
def test_clear_image_layers(image_layer_manager):
|
|
"""Test clearing all image layers from the ImageLayerManager."""
|
|
layer = image_layer_manager.add(name="Test Layer")
|
|
assert len(image_layer_manager) == 1
|
|
|
|
image_layer_manager.clear()
|
|
assert len(image_layer_manager) == 0
|
|
|
|
|
|
def test_image_layer_manager_getitem(image_layer_manager):
|
|
"""Test getting an image layer by index."""
|
|
layer = image_layer_manager.add(name="Test Layer")
|
|
assert image_layer_manager["Test Layer"] == layer
|
|
|
|
with pytest.raises(TypeError):
|
|
_ = image_layer_manager[1]
|
|
|
|
image_layer_manager.remove("Test Layer")
|
|
assert len(image_layer_manager) == 0
|
|
|
|
|
|
def test_image_layer_iteration(image_layer_manager):
|
|
"""Test iterating over image layers."""
|
|
layer = image_layer_manager.add(name="Test Layer")
|
|
assert list(image_layer_manager) == [layer]
|
|
|
|
layer2 = image_layer_manager.add(name="Test Layer 2")
|
|
assert list(image_layer_manager) == [layer, layer2]
|
|
|
|
layer3 = image_layer_manager.add()
|
|
assert list(image_layer_manager) == [layer, layer2, layer3]
|
|
names = list(image_layer_manager.layers.keys())
|
|
assert names == ["Test Layer", "Test Layer 2", "image_layer_0"]
|