tests: Reduce db initialization fixtures to a minimum

This commit is contained in:
Antoine R. Dumont (@ardumont) 2020-10-29 17:37:45 +01:00
parent b35dff1266
commit b90ffa4bdd
No known key found for this signature in database
GPG key ID: 52E2E9840D10C3B8
3 changed files with 14 additions and 34 deletions

View file

@ -6,12 +6,9 @@
import os
import pytest
from pytest_postgresql.janitor import DatabaseJanitor
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from swh.core.db.pytest_plugin import postgresql_fact
from swh.lister.core.models import SQLBase
from swh.lister.debian import debian_init
import swh.scheduler
@ -48,7 +45,7 @@ def lister_debian(swh_lister):
{
"type": "load-deb-package",
"description": "Load a Debian package",
"backend_name": "swh.loader.debian.tasks.LoaderDebianPackage",
"backend_name": "swh.loader.packages.debian.tasks.LoaderDebianPackage",
"default_interval": "1 day",
}
)
@ -57,24 +54,8 @@ def lister_debian(swh_lister):
@pytest.fixture
def sqlalchemy_engine(postgresql_proc):
pg_host = postgresql_proc.host
pg_port = postgresql_proc.port
pg_user = postgresql_proc.user
pg_db = "sqlalchemy-tests"
url = f"postgresql://{pg_user}@{pg_host}:{pg_port}/{pg_db}"
with DatabaseJanitor(pg_user, pg_host, pg_port, pg_db, postgresql_proc.version):
engine = create_engine(url)
yield engine
engine.dispose()
@pytest.fixture
def session(sqlalchemy_engine):
SQLBase.metadata.create_all(sqlalchemy_engine)
Session = sessionmaker(bind=sqlalchemy_engine)
session = Session()
def session(lister_db_url, engine):
session = sessionmaker(bind=engine)()
yield session
session.close()
engine.dispose()