From e0fa5c58d38c2cbe39fe1f8e0fbb36591c29b661 Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont <nicolas@dandrimont.eu> Date: Tue, 16 Jun 2020 10:24:03 +0200 Subject: [PATCH] Move lister addition in scheduler tests to a pytest fixture This lets us keep the tests a little DRYer. --- swh/scheduler/tests/conftest.py | 8 ++++++++ swh/scheduler/tests/test_scheduler.py | 14 +++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/swh/scheduler/tests/conftest.py b/swh/scheduler/tests/conftest.py index b3be2e46..aa1af310 100644 --- a/swh/scheduler/tests/conftest.py +++ b/swh/scheduler/tests/conftest.py @@ -13,6 +13,8 @@ import pkg_resources 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 @@ def swh_scheduler(swh_scheduler_config): # 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 index fc3a0846..c7efff8f 100644 --- a/swh/scheduler/tests/test_scheduler.py +++ b/swh/scheduler/tests/test_scheduler.py @@ -630,23 +630,19 @@ class TestScheduler: 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): -- GitLab