Test static filters

This commit is contained in:
Igor Radovanovic
2023-07-26 11:47:17 +02:00
parent 0622894c94
commit aeed2e591d
2 changed files with 51 additions and 3 deletions

View File

@@ -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)

View 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