summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Radovanovic <74266147+IgorWounds@users.noreply.github.com>2023-09-18 15:46:57 +0200
committerIgor Radovanovic <74266147+IgorWounds@users.noreply.github.com>2023-09-18 15:46:57 +0200
commit2ae51ceef9145fd3061fcae8094f3a2651c750eb (patch)
tree2075fde962db3a8dd8eed527e78a820525a7b2fc
parent0f160b26f50222346b8cd7235377908bd1aef682 (diff)
Fix assertions
-rw-r--r--openbb_sdk/providers/utils/unit_test_generator.py1
-rw-r--r--openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py62
2 files changed, 43 insertions, 20 deletions
diff --git a/openbb_sdk/providers/utils/unit_test_generator.py b/openbb_sdk/providers/utils/unit_test_generator.py
index ef43ee95398..0cad12fdb97 100644
--- a/openbb_sdk/providers/utils/unit_test_generator.py
+++ b/openbb_sdk/providers/utils/unit_test_generator.py
@@ -7,7 +7,6 @@ from openbb_provider.abstract.fetcher import Fetcher
from openbb_provider.registry import RegistryLoader
from openbb_provider.utils.helpers import to_snake_case
from pydantic.fields import ModelField
-
from sdk.core.openbb_core.app.provider_interface import ProviderInterface
diff --git a/openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py b/openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py
index 027422f7569..e71e4afb35c 100644
--- a/openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py
+++ b/openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py
@@ -109,26 +109,50 @@ class Fetcher(Generic[Q, R]):
# Data Assertions
assert data
- assert all(
- [field in data[0] for field in cls.data_type.__fields__ if field in data[0]]
- )
+ is_list = type(data) == list
+ if is_list:
+ assert all(
+ [
+ field in data[0]
+ for field in cls.data_type.__fields__
+ if field in data[0]
+ ]
+ )
+ # This makes sure that the data is not transformed yet so that the
+ # pipeline is implemented correctly. We can remove this assertion if we
+ # want to be less strict.
+ assert issubclass(type(data[0]), cls.data_type) is False
+ else:
+ assert all(
+ [field in data for field in cls.data_type.__fields__ if field in data]
+ )
+ assert issubclass(type(data), cls.data_type) is False
+
assert len(data) > 0
- # This makes sure that the data is not transformed yet so that the
- # pipeline is implemented correctly. We can remove this assertion if we
- # want to be less strict.
- assert issubclass(type(data[0]), cls.data_type) is False
# Transformed Data Assertions
assert transformed_data
- assert all(
- [
- field in transformed_data[0].__dict__ # type: ignore
- for field in cls.return_type.__args__[0].__fields__
- ]
- )
- assert len(transformed_data) > 0 # type: ignore
- assert issubclass(type(transformed_data[0]), cls.data_type) # type: ignore
- assert issubclass(
- type(transformed_data[0]), # type: ignore
- cls.return_type.__args__[0],
- )
+
+ is_list = type(transformed_data) == list
+ if is_list:
+ assert len(transformed_data) > 0 # type: ignore
+ assert all(
+ [
+ field in transformed_data[0].__dict__ # type: ignore
+ for field in cls.return_type.__args__[0].__fields__
+ ]
+ )
+ assert issubclass(type(transformed_data[0]), cls.data_type) # type: ignore
+ assert issubclass(
+ type(transformed_data[0]), # type: ignore
+ cls.return_type.__args__[0],
+ )
+ else:
+ assert all(
+ [
+ field in transformed_data.__dict__
+ for field in cls.return_type.__fields__
+ ]
+ )
+ assert issubclass(type(transformed_data), cls.data_type)
+ assert issubclass(type(transformed_data), cls.return_type)