66 lines
1.8 KiB
Python
66 lines
1.8 KiB
Python
from dataclasses import dataclass
|
|
|
|
import pandas as pd
|
|
import pytest
|
|
|
|
from components.datagrid_new.components.DataGrid import DataGrid
|
|
from core.Expando import Expando
|
|
from core.settings_management import SettingsManager, MemoryDbEngine
|
|
from utils.Datahelper import DataHelper
|
|
|
|
TEST_GRID_ID = "testing_grid_id"
|
|
TEST_GRID_KEY = ("RepoName", "TableName")
|
|
|
|
|
|
@pytest.fixture()
|
|
def settings_manager():
|
|
return SettingsManager(MemoryDbEngine())
|
|
|
|
|
|
@pytest.fixture()
|
|
def datagrid(session, settings_manager):
|
|
dg = DataGrid(session,
|
|
_id=TEST_GRID_ID,
|
|
settings_manager=settings_manager,
|
|
key=TEST_GRID_KEY,
|
|
boundaries={"height": 500, "width": 800})
|
|
|
|
df = pd.DataFrame({
|
|
'Name': ['Alice', 'Bob'],
|
|
'Age': [20, 25],
|
|
'Is Student': [True, False],
|
|
})
|
|
|
|
dg.init_from_dataframe(df, save_state=True)
|
|
return dg
|
|
|
|
|
|
def test_i_can_get_data_as_dataframe(session, settings_manager, datagrid):
|
|
res = DataHelper.get(session, settings_manager, "RepoName", "TableName")
|
|
assert isinstance(res, pd.DataFrame)
|
|
assert res.equals(datagrid.get_dataframe())
|
|
|
|
|
|
def test_i_can_get_data_as_dataclass(session, settings_manager, datagrid):
|
|
@dataclass
|
|
class DataclassTestClass:
|
|
name: str
|
|
age: int
|
|
is_student: bool
|
|
|
|
res = DataHelper.get(session, settings_manager, "RepoName", "TableName", DataclassTestClass)
|
|
assert isinstance(res, list)
|
|
assert res == [
|
|
DataclassTestClass("Alice", 20, True),
|
|
DataclassTestClass("Bob", 25, False),
|
|
]
|
|
|
|
|
|
def test_i_can_get_data_as_expando(session, settings_manager, datagrid):
|
|
res = DataHelper.get(session, settings_manager, "RepoName", "TableName", Expando)
|
|
assert isinstance(res, list)
|
|
assert res == [
|
|
Expando({"name": "Alice", "age": 20, "is_student": True}),
|
|
Expando({"name": "Bob", "age": 25, "is_student": False})
|
|
]
|
|
|