Files
MyFastHtml/tests/controls/conftest.py
2026-03-11 20:59:07 +01:00

59 lines
1.8 KiB
Python

import pytest
from pandas import DataFrame
from myfasthtml.controls.DataGrid import DataGrid, DatagridConf
from myfasthtml.controls.DataGridsManager import DataGridsManager
from myfasthtml.controls.TabsManager import TabsManager
from myfasthtml.core.data.DataServicesManager import DataServicesManager
from myfasthtml.core.instances import SingleInstance, InstancesManager
class RootInstanceForTests(SingleInstance):
def __init__(self, session):
super().__init__(None, session, _id="TestRoot")
@pytest.fixture(scope="session")
def session():
return {
"user_info": {
'email': 'test@myfasthtml.com',
'username': 'test_user',
'roles': ['admin'],
'user_settings': {},
'id': 'test_user_id',
'created_at': '2025-11-10T15:52:59.006213',
'updated_at': '2025-11-10T15:52:59.006213'
}
}
@pytest.fixture(scope="session")
def root_instance(session):
InstancesManager.reset()
return RootInstanceForTests(session=session)
@pytest.fixture
def datagrids_manager(root_instance):
return DataGridsManager(root_instance)
@pytest.fixture
def dataservices_manager(root_instance):
return InstancesManager.get_by_type(root_instance._session, DataServicesManager)
def get_data_grid(root_instance, df: DataFrame, table_name: str = "test.grid1", save_state: bool = False):
TabsManager(root_instance) # just define it
dgm = DataGridsManager(root_instance)
dsm = InstancesManager.get_by_type(root_instance._session, DataServicesManager)
data_service = dsm.create_service(table_name, save_state=save_state)
data_service.load_dataframe(df)
grid_id = DataGrid.get_grid_id_from_data_service_id(data_service.get_id())
namespace, table_name = table_name.split(".")
conf = DatagridConf(namespace=namespace, name=table_name)
return DataGrid(dgm, conf=conf, save_state=save_state, _id=grid_id)