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 | |