Skip to content
Snippets Groups Projects
Commit 211f4610 authored by Nicolas Dandrimont's avatar Nicolas Dandrimont
Browse files

Move get_scheduler monkeypatching into an explicit pytest fixture

This allows us to actually run the lister instantiation code instead of relying
on the underlying structure of the lister object. In turn, this allows future
listers to use the scheduler right in their __init__.
parent d0c1df65
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,24 @@
import os
import pytest
pytest_plugins = ["swh.scheduler.pytest_plugin"]
os.environ["LC_ALL"] = "C.UTF-8"
@pytest.fixture
def mock_get_scheduler(monkeypatch, swh_scheduler):
"""Override the get_scheduler function in swh.lister.core.lister_base, to
return the swh_scheduler fixture.
"""
from swh.lister.core import lister_base
# Match the signature from swh.scheduler.get_scheduler
def get_scheduler(cls, args={}):
return swh_scheduler
monkeypatch.setattr(lister_base, "get_scheduler", get_scheduler)
yield monkeypatch
......@@ -27,14 +27,12 @@ def lister_db_url(postgresql_proc, postgresql):
@pytest.fixture
def swh_listers(request, lister_db_url, swh_scheduler):
def swh_listers(mock_get_scheduler, lister_db_url, swh_scheduler):
listers = {}
# Prepare schema for all listers
for lister_name in SUPPORTED_LISTERS:
lister = get_lister(lister_name, db_url=lister_db_url)
lister.scheduler = swh_scheduler # inject scheduler fixture
listers[lister_name] = lister
initialize(create_engine(lister_db_url), drop_tables=True)
......
......@@ -20,7 +20,7 @@ def test_get_lister_wrong_input():
assert "Invalid lister" in str(e.value)
def test_get_lister():
def test_get_lister(mock_get_scheduler):
"""Instantiating a supported lister should be ok
"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment