diff options
author | Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> | 2023-09-18 15:46:57 +0200 |
---|---|---|
committer | Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> | 2023-09-18 15:46:57 +0200 |
commit | 2ae51ceef9145fd3061fcae8094f3a2651c750eb (patch) | |
tree | 2075fde962db3a8dd8eed527e78a820525a7b2fc | |
parent | 0f160b26f50222346b8cd7235377908bd1aef682 (diff) |
Fix assertions
-rw-r--r-- | openbb_sdk/providers/utils/unit_test_generator.py | 1 | ||||
-rw-r--r-- | openbb_sdk/sdk/provider/openbb_provider/abstract/fetcher.py | 62 |
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) |