Files
OpenBB/cli/tests/test_utils_utils.py
Danglewood 9a30186174 [V5] CLI 2.0 - Pluggable Backends, Non-TTY Default, HTTP Dispatcher, Spec Files + Codegen (#7433)
* stash some changes

* add more robust testing

* mypy

* point PR at V5

* introduce spec file

* codespell

* test fix

* fix workflow environment setup

* fix workflow environment setup

* fix workflow environment setup

* add pyyaml to dependencies

* split lint jobs

* fix workflow environment setup

* fix workflow environment setup

* workflow env setup

* workflow env setup

* clean up code comments

* add auth hook entrypoints

* codespell

* add codegen feature

* codespell

* move _unpack into dispatchers for consistency with codegen packages

* surface nested models in the response

* fix missing coverage in CI

* socrata updates

* test fix

* detect plotly output

* add --include and --exclude flags from generate-extension command

* cap test matrix at python 3.14

* no useless comments

* platform controller command description split

* merge URL overloads from path params

* exclude none and unset from model dump

---------

Co-authored-by: deeleeramone <>
Co-authored-by: Copilot <copilot@github.com>
2026-06-01 19:14:38 +03:00

84 lines
2.9 KiB
Python

"""Test the utils/utils module."""
import json
class TestChangeLoggingSubApp:
def test_sets_cli_sub_app(self, tmp_path):
"""Test that change_logging_sub_app sets logging_sub_app to 'cli'."""
settings_file = tmp_path / "system_settings.json"
settings_file.write_text(json.dumps({"logging_sub_app": ""}))
from unittest.mock import patch
with patch("openbb_cli.utils.utils.SYSTEM_SETTINGS_PATH", settings_file):
from openbb_cli.utils.utils import change_logging_sub_app
initial = change_logging_sub_app()
assert initial == ""
data = json.loads(settings_file.read_text())
assert data["logging_sub_app"] == "cli"
def test_returns_previous_value(self, tmp_path):
"""Test it returns the previous logging_sub_app value."""
settings_file = tmp_path / "system_settings.json"
settings_file.write_text(json.dumps({"logging_sub_app": "sdk"}))
from unittest.mock import patch
with patch("openbb_cli.utils.utils.SYSTEM_SETTINGS_PATH", settings_file):
from openbb_cli.utils.utils import change_logging_sub_app
initial = change_logging_sub_app()
assert initial == "sdk"
def test_creates_key_if_missing(self, tmp_path):
"""Test it handles missing logging_sub_app key."""
settings_file = tmp_path / "system_settings.json"
settings_file.write_text(json.dumps({}))
from unittest.mock import patch
with patch("openbb_cli.utils.utils.SYSTEM_SETTINGS_PATH", settings_file):
from openbb_cli.utils.utils import change_logging_sub_app
initial = change_logging_sub_app()
assert initial == ""
data = json.loads(settings_file.read_text())
assert data["logging_sub_app"] == "cli"
class TestResetLoggingSubApp:
def test_resets_to_original(self, tmp_path):
"""Test that reset_logging_sub_app restores the original value."""
settings_file = tmp_path / "system_settings.json"
settings_file.write_text(json.dumps({"logging_sub_app": "cli"}))
from unittest.mock import patch
with patch("openbb_cli.utils.utils.SYSTEM_SETTINGS_PATH", settings_file):
from openbb_cli.utils.utils import reset_logging_sub_app
reset_logging_sub_app("sdk")
data = json.loads(settings_file.read_text())
assert data["logging_sub_app"] == "sdk"
def test_resets_to_empty(self, tmp_path):
"""Test resetting to empty string."""
settings_file = tmp_path / "system_settings.json"
settings_file.write_text(json.dumps({"logging_sub_app": "cli"}))
from unittest.mock import patch
with patch("openbb_cli.utils.utils.SYSTEM_SETTINGS_PATH", settings_file):
from openbb_cli.utils.utils import reset_logging_sub_app
reset_logging_sub_app("")
data = json.loads(settings_file.read_text())
assert data["logging_sub_app"] == ""