tests: Reduce db initialization fixtures to a minimum
This commit is contained in:
parent
b35dff1266
commit
b90ffa4bdd
3 changed files with 14 additions and 34 deletions
|
@ -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()
|
||||
|
|
|
@ -9,14 +9,12 @@ import os
|
|||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
from sqlalchemy.engine import create_engine
|
||||
|
||||
from swh.lister import get_lister
|
||||
from swh.lister.core.models import initialize
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def lister_launchpad(datadir, lister_db_url, swh_scheduler):
|
||||
def lister_launchpad(datadir, lister_db_url, engine, swh_scheduler):
|
||||
class Collection:
|
||||
entries = []
|
||||
|
||||
|
@ -42,11 +40,8 @@ def lister_launchpad(datadir, lister_db_url, swh_scheduler):
|
|||
with patch("launchpadlib.launchpad.Launchpad.login_anonymously"):
|
||||
lister = get_lister("launchpad", db_url=lister_db_url)
|
||||
|
||||
lister.scheduler = swh_scheduler # inject scheduler fixture
|
||||
lister.launchpad.git_repositories.getRepositories.side_effect = [
|
||||
mock_lp_response(i) for i in range(3)
|
||||
]
|
||||
|
||||
initialize(create_engine(lister_db_url), drop_tables=True)
|
||||
|
||||
return lister
|
||||
|
|
|
@ -50,9 +50,13 @@ def swh_config(swh_lister_config, monkeypatch, tmp_path):
|
|||
|
||||
|
||||
@pytest.fixture
|
||||
def swh_lister(lister_db_url, swh_scheduler, lister_under_test, swh_config):
|
||||
assert lister_under_test in SUPPORTED_LISTERS
|
||||
lister = get_lister(lister_under_test, db_url=lister_db_url)
|
||||
initialize(create_engine(lister_db_url), drop_tables=True)
|
||||
def engine(lister_db_url):
|
||||
engine = create_engine(lister_db_url)
|
||||
initialize(engine, drop_tables=True)
|
||||
return engine
|
||||
|
||||
return lister
|
||||
|
||||
@pytest.fixture
|
||||
def swh_lister(engine, lister_db_url, lister_under_test, swh_config):
|
||||
assert lister_under_test in SUPPORTED_LISTERS
|
||||
return get_lister(lister_under_test, db_url=lister_db_url)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue