mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-28 21:12:16 +00:00
Test static filters
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
"""OpenBB filters."""
|
||||
|
||||
import builtins
|
||||
from functools import wraps
|
||||
|
||||
@@ -10,10 +12,12 @@ from openbb_core.app.utils import df_to_basemodel
|
||||
|
||||
|
||||
class OpenBBError(Exception):
|
||||
pass
|
||||
"""A custom exception for OpenBB errors."""
|
||||
|
||||
|
||||
def filter_call(func):
|
||||
"""Filter command call."""
|
||||
|
||||
@wraps(wrapped=func)
|
||||
def inner(*args, **kwargs):
|
||||
self = args[0]
|
||||
@@ -36,7 +40,7 @@ def filter_call(func):
|
||||
|
||||
|
||||
def filter_inputs(**kwargs) -> dict:
|
||||
"""Filter command inputs"""
|
||||
"""Filter command inputs."""
|
||||
for key, value in kwargs.items():
|
||||
if isinstance(value, pd.DataFrame):
|
||||
kwargs[key] = df_to_basemodel(value, index=True)
|
||||
@@ -45,7 +49,7 @@ def filter_inputs(**kwargs) -> dict:
|
||||
|
||||
|
||||
def filter_output(command_output: CommandOutput) -> CommandOutput:
|
||||
"""Filter command output"""
|
||||
"""Filter command output."""
|
||||
if command_output.warnings:
|
||||
for w in command_output.warnings:
|
||||
category = getattr(builtins, w.category, OpenBBWarning)
|
||||
|
||||
44
openbb_sdk/sdk/core/tests/test_static_filters.py
Normal file
44
openbb_sdk/sdk/core/tests/test_static_filters.py
Normal file
@@ -0,0 +1,44 @@
|
||||
"""Test the app/static/filters.py file."""
|
||||
|
||||
import pytest
|
||||
from openbb_core.app.model.command_output import CommandOutput
|
||||
from openbb_core.app.static.filters import filter_call, filter_inputs, filter_output
|
||||
from pandas import DataFrame
|
||||
|
||||
|
||||
def test_filter_call_error():
|
||||
"""Test filter_call."""
|
||||
|
||||
class Test:
|
||||
@filter_call
|
||||
def test(self):
|
||||
return 1 / 0
|
||||
|
||||
test = Test()
|
||||
|
||||
with pytest.raises(Exception):
|
||||
test.test()
|
||||
|
||||
|
||||
def test_filter_inputs_not_df():
|
||||
"""Test filter_inputs."""
|
||||
kwargs = {"num": 1}
|
||||
kwargs = filter_inputs(**kwargs)
|
||||
|
||||
assert kwargs["num"] == 1
|
||||
|
||||
|
||||
def test_filter_inputs_df():
|
||||
"""Test filter_inputs."""
|
||||
df = DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
|
||||
kwargs = {"df": df}
|
||||
kwargs = filter_inputs(**kwargs)
|
||||
|
||||
assert isinstance(kwargs["df"], list)
|
||||
|
||||
|
||||
def test_filter_output():
|
||||
"""Test filter_output."""
|
||||
command_output = filter_output(CommandOutput())
|
||||
|
||||
assert command_output is not None
|
||||
Reference in New Issue
Block a user