diff --git a/swh/scheduler/tests/conftest.py b/swh/scheduler/tests/conftest.py --- a/swh/scheduler/tests/conftest.py +++ b/swh/scheduler/tests/conftest.py @@ -13,6 +13,8 @@ from swh.core.utils import numfile_sortkey as sortkey from swh.scheduler import get_scheduler from swh.scheduler.tests import SQL_DIR +from swh.scheduler.model import Lister +from swh.scheduler.tests.common import LISTERS # make sure we are not fooled by CELERY_ config environment vars @@ -110,3 +112,9 @@ # this alias is used to be able to easily instantiate a db-backed Scheduler # eg. for the RPC client/server test suite. swh_db_scheduler = swh_scheduler + + +@pytest.fixture +def stored_lister(swh_scheduler) -> Lister: + """Store a lister in the scheduler and return its information""" + return swh_scheduler.get_or_create_lister(**LISTERS[0]) diff --git a/swh/scheduler/tests/test_scheduler.py b/swh/scheduler/tests/test_scheduler.py --- a/swh/scheduler/tests/test_scheduler.py +++ b/swh/scheduler/tests/test_scheduler.py @@ -630,23 +630,19 @@ assert lister == lister_get_again - def test_update_lister(self, swh_scheduler): - lister = swh_scheduler.get_or_create_lister(**LISTERS[0]) - - lister.current_state = {"updated": "now"} + def test_update_lister(self, swh_scheduler, stored_lister): + lister = attr.evolve(stored_lister, current_state={"updated": "now"}) updated_lister = swh_scheduler.update_lister(lister) assert updated_lister.updated > lister.updated assert updated_lister == attr.evolve(lister, updated=updated_lister.updated) - def test_update_lister_stale(self, swh_scheduler): - lister = swh_scheduler.get_or_create_lister(**LISTERS[0]) - - swh_scheduler.update_lister(lister) + def test_update_lister_stale(self, swh_scheduler, stored_lister): + swh_scheduler.update_lister(stored_lister) with pytest.raises(StaleData) as exc: - swh_scheduler.update_lister(lister) + swh_scheduler.update_lister(stored_lister) assert "state not updated" in exc.value.args[0] def _create_task_types(self, scheduler):