diff --git a/tests/unit_tests/test_rpc_base.py b/tests/unit_tests/test_rpc_base.py new file mode 100644 index 00000000..cbb85c30 --- /dev/null +++ b/tests/unit_tests/test_rpc_base.py @@ -0,0 +1,28 @@ +import pytest + +from bec_widgets.cli.rpc.rpc_base import DeletedWidgetError, RPCBase, RPCReference + + +@pytest.fixture +def rpc_base(): + yield RPCBase(gui_id="rpc_base_test", name="test") + + +def test_rpc_base(rpc_base): + """Test registry and reference creation""" + registry = {rpc_base._gui_id: rpc_base} + ref = RPCReference(registry, rpc_base._gui_id) + + assert ref._gui_id == rpc_base._gui_id + assert ref.widget_name == rpc_base.widget_name + assert ref.__str__() == rpc_base.__str__() + assert ref.__repr__() == rpc_base.__repr__() + + # Remove object from registry + registry.pop(rpc_base._gui_id) + + assert ref.__str__() == f"" + assert ref.__repr__() == f"" + + with pytest.raises(DeletedWidgetError): + ref.widget_name # Object no longer referenced in registry