embedchain
35 строк · 1.0 Кб
1import os2
3import pytest4from sqlalchemy import MetaData, create_engine5from sqlalchemy.orm import sessionmaker6
7
8@pytest.fixture(autouse=True)9def clean_db():10db_path = os.path.expanduser("~/.embedchain/embedchain.db")11db_url = f"sqlite:///{db_path}"12engine = create_engine(db_url)13metadata = MetaData()14metadata.reflect(bind=engine) # Reflect schema from the engine15Session = sessionmaker(bind=engine)16session = Session()17
18try:19# Iterate over all tables in reversed order to respect foreign keys20for table in reversed(metadata.sorted_tables):21if table.name != "alembic_version": # Skip the Alembic version table22session.execute(table.delete())23session.commit()24except Exception as e:25session.rollback()26print(f"Error cleaning database: {e}")27finally:28session.close()29
30
31@pytest.fixture(autouse=True)32def disable_telemetry():33os.environ["EC_TELEMETRY"] = "false"34yield35del os.environ["EC_TELEMETRY"]36