Spaces:
Running
Running
| import asyncio | |
| import pytest | |
| from langflow.services.deps import get_settings_service | |
| def setup_database_url(tmp_path, monkeypatch): | |
| """Setup a temporary database URL for testing.""" | |
| db_path = tmp_path / "test_performance.db" | |
| original_value = monkeypatch.delenv("LANGFLOW_DATABASE_URL", raising=False) | |
| test_db_url = f"sqlite:///{db_path}" | |
| monkeypatch.setenv("LANGFLOW_DATABASE_URL", test_db_url) | |
| yield | |
| # Restore original value if it existed | |
| if original_value is not None: | |
| monkeypatch.setenv("LANGFLOW_DATABASE_URL", original_value) | |
| else: | |
| monkeypatch.delenv("LANGFLOW_DATABASE_URL", raising=False) | |
| async def test_initialize_services(): | |
| """Benchmark the initialization of services.""" | |
| from langflow.services.utils import initialize_services | |
| await initialize_services(fix_migration=False) | |
| settings_service = get_settings_service() | |
| assert "test_performance.db" in settings_service.settings.database_url | |
| async def test_setup_llm_caching(): | |
| """Benchmark LLM caching setup.""" | |
| from langflow.interface.utils import setup_llm_caching | |
| setup_llm_caching() | |
| settings_service = get_settings_service() | |
| assert "test_performance.db" in settings_service.settings.database_url | |
| async def test_initialize_super_user(): | |
| """Benchmark super user initialization.""" | |
| from langflow.initial_setup.setup import initialize_super_user_if_needed | |
| from langflow.services.utils import initialize_services | |
| await initialize_services(fix_migration=False) | |
| await initialize_super_user_if_needed() | |
| settings_service = get_settings_service() | |
| assert "test_performance.db" in settings_service.settings.database_url | |
| async def test_get_and_cache_all_types_dict(): | |
| """Benchmark get_and_cache_all_types_dict function.""" | |
| from langflow.interface.types import get_and_cache_all_types_dict | |
| settings_service = get_settings_service() | |
| result = await get_and_cache_all_types_dict(settings_service) | |
| assert "vectorstores" in result | |
| assert "test_performance.db" in settings_service.settings.database_url | |
| async def test_create_starter_projects(): | |
| """Benchmark creation of starter projects.""" | |
| from langflow.initial_setup.setup import create_or_update_starter_projects | |
| from langflow.interface.types import get_and_cache_all_types_dict | |
| from langflow.services.utils import initialize_services | |
| await initialize_services(fix_migration=False) | |
| settings_service = get_settings_service() | |
| types_dict = await get_and_cache_all_types_dict(settings_service) | |
| await asyncio.to_thread(create_or_update_starter_projects, types_dict) | |
| assert "test_performance.db" in settings_service.settings.database_url | |
| async def test_load_flows(): | |
| """Benchmark loading flows from directory.""" | |
| from langflow.initial_setup.setup import load_flows_from_directory | |
| await load_flows_from_directory() | |
| settings_service = get_settings_service() | |
| assert "test_performance.db" in settings_service.settings.database_url | |