mirror of
https://github.com/bec-project/bec_widgets.git
synced 2026-07-27 13:42:58 +02:00
fix(image): guard layer access during/after teardown
This commit is contained in:
@@ -1456,4 +1456,26 @@ def test_adjust_image_buffer_coerces_list_and_scalar(qtbot, mocked_client):
|
||||
buf = view.adjust_image_buffer(image, [1, 2, 3]) # python list
|
||||
assert buf.shape == (1, 3)
|
||||
buf = view.adjust_image_buffer(image, np.array(42.0)) # 0-d scalar
|
||||
assert buf.shape[0] == 2
|
||||
assert buf.shape[0] == 2
|
||||
|
||||
|
||||
##############################################
|
||||
# Teardown safety
|
||||
##############################################
|
||||
|
||||
|
||||
def test_layer_accessors_safe_after_teardown(qtbot, mocked_client):
|
||||
"""Once layer_manager is gone (post-cleanup), signal-driven accessors must
|
||||
not raise. They used to subscript None or resurrect the 'main' layer."""
|
||||
view = create_widget(qtbot, Image, client=mocked_client)
|
||||
view.enable_full_colorbar = True
|
||||
view.layer_manager = None # simulate post-cleanup state
|
||||
|
||||
# None of these should raise:
|
||||
assert view.autorange is False
|
||||
assert view.autorange_mode == "mean"
|
||||
view.toggle_autorange(True, "mean")
|
||||
view._set_autorange(True)
|
||||
view.autorange_mode = "max"
|
||||
view._sync_autorange_switch()
|
||||
view._sync_colorbar_levels()
|
||||
|
||||
Reference in New Issue
Block a user