Add test database with alembic

This commit is contained in:
Antoine Bertin 2021-04-28 22:07:07 +02:00
commit 9e5549adc9
No known key found for this signature in database
GPG key ID: 09851B52754E2327
2 changed files with 26 additions and 10 deletions

View file

@ -60,6 +60,8 @@ def run_migrations_online():
"""
config.set_section_option(config.config_ini_section, "DB_URL", settings.DB_URL)
connectable = config.attributes.get('connection', None)
if not connectable:
connectable = engine_from_config(
config.get_section(config.config_ini_section),
prefix="sqlalchemy.",

View file

@ -6,17 +6,33 @@ from mealie.app import app
from mealie.core.config import app_dirs, settings
from mealie.db.db_setup import generate_session, sql_global_init
from pytest import fixture
from alembic import command, config
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from tests.app_routes import AppRoutes
from tests.test_config import TEST_DATA
from tests.utils.recipe_data import build_recipe_store, get_raw_no_image, get_raw_recipe
SQLITE_FILE = app_dirs.SQLITE_DIR.joinpath("test.db")
# sqlite test db
SQLITE_FILE = app_dirs.DATA_DIR.joinpath("test.db")
SQLITE_FILE.unlink(missing_ok=True)
DB_URL = "sqlite:///" + str(SQLITE_FILE.absolute())
engine = create_engine(
DB_URL,
echo=False,
connect_args={"check_same_thread": False},
)
# alembic migrations
config = config.Config("alembic.ini")
config.set_main_option('sqlalchemy.url', DB_URL)
config.attributes['connection'] = engine
command.upgrade(config, "head")
TestSessionLocal = sql_global_init(SQLITE_FILE)
# test session
TestSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
def override_get_db():
try:
@ -33,8 +49,6 @@ def api_client():
yield TestClient(app)
SQLITE_FILE.unlink()
@fixture(scope="session")
def api_routes():