Files
OpenBB/cli/integration/test_integration_obbject_registry.py
Danglewood 869cfed125 [Release] openbb-v5.0.0 (#7741)
* merge branch develop with main

* bump desktop version

* fix the merge

* sync Cargo.lock to desktop 2.0.0

* fix cli conftest.py

---------

Co-authored-by: deeleeramone <>
2026-09-29 10:58:44 -07:00

49 lines
1.6 KiB
Python

"""Test the obbject registry."""
from openbb_core.app.model.obbject import OBBject
from openbb_cli.argparse_translator.obbject_registry import Registry
# ruff: noqa: F841
def test_registry_operations():
"""Test the registry operations."""
registry = Registry()
obbject1 = OBBject(
id="1", results=True, extra={"register_key": "key1", "command": "cmd1"}
)
obbject2 = OBBject(
id="2", results=True, extra={"register_key": "key2", "command": "cmd2"}
)
obbject3 = OBBject( # noqa: F841
id="3", results=True, extra={"register_key": "key3", "command": "cmd3"}
)
assert registry.register(obbject1) is True
assert registry.register(obbject2) is True
assert registry.register(obbject1) is False
assert len(registry.obbjects) == 2
assert registry.get(0) == obbject2
assert registry.get(1) == obbject1
assert registry.get("key1") == obbject1
assert registry.get("key2") == obbject2
assert registry.get(2) is None
assert registry.get("invalid_key") is None
registry.remove(0)
assert len(registry.obbjects) == 1
assert registry.get("key2") is None
all_obbjects = registry.all
# ``command`` lives under ``extra`` — that's where the OBBject keeps
# it and where the registry surfaces it (no synthetic top-level
# mirror that would duplicate ``extra.metadata.route`` etc.).
assert "command" in all_obbjects[0]["extra"]
assert all_obbjects[0]["extra"]["command"] == "cmd1"
registry.remove()
assert len(registry.obbjects) == 0
assert registry.get("key1") is None