Spaces:
No application file
No application file
| import os | |
| import pytest | |
| from sqlalchemy import MetaData, create_engine | |
| from sqlalchemy.orm import sessionmaker | |
| def clean_db(): | |
| db_path = os.path.expanduser("~/.embedchain/embedchain.db") | |
| db_url = f"sqlite:///{db_path}" | |
| engine = create_engine(db_url) | |
| metadata = MetaData() | |
| metadata.reflect(bind=engine) # Reflect schema from the engine | |
| Session = sessionmaker(bind=engine) | |
| session = Session() | |
| try: | |
| # Iterate over all tables in reversed order to respect foreign keys | |
| for table in reversed(metadata.sorted_tables): | |
| if table.name != "alembic_version": # Skip the Alembic version table | |
| session.execute(table.delete()) | |
| session.commit() | |
| except Exception as e: | |
| session.rollback() | |
| print(f"Error cleaning database: {e}") | |
| finally: | |
| session.close() | |
| def disable_telemetry(): | |
| os.environ["EC_TELEMETRY"] = "false" | |
| yield | |
| del os.environ["EC_TELEMETRY"] | |