diff --git a/module_build_service/scheduler/producer.py b/module_build_service/scheduler/producer.py index 55932d51..615ada22 100644 --- a/module_build_service/scheduler/producer.py +++ b/module_build_service/scheduler/producer.py @@ -482,7 +482,7 @@ class MBSProducer(PollingProducer): module_builds = ( db_session.query(models.ModuleBuild) - .filter_by(state=models.BUILD_STATES["done"]).all() + .filter_by(state=models.BUILD_STATES["done"], scratch=False).all() ) log.info("Checking Greenwave for %d builds", len(module_builds)) diff --git a/tests/test_scheduler/test_poller.py b/tests/test_scheduler/test_poller.py index ab667d27..7549923f 100644 --- a/tests/test_scheduler/test_poller.py +++ b/tests/test_scheduler/test_poller.py @@ -22,7 +22,7 @@ import re import pytest from mock import patch from module_build_service import models, conf -from tests import clean_database +from tests import clean_database, make_module_in_db import mock import koji from module_build_service.scheduler.producer import MBSProducer @@ -710,8 +710,12 @@ class TestPoller: module_build2 = models.ModuleBuild.get_by_id(db_session, 2) module_build2.state = models.BUILD_STATES["done"] - module_build2 = models.ModuleBuild.get_by_id(db_session, 3) - module_build2.state = models.BUILD_STATES["init"] + module_build3 = models.ModuleBuild.get_by_id(db_session, 3) + module_build3.state = models.BUILD_STATES["init"] + + module_build4 = make_module_in_db("foo:1:1:1", {}, db_session=db_session) + module_build4.state = models.BUILD_STATES["done"] + module_build4.scratch = True db_session.commit() @@ -737,6 +741,10 @@ class TestPoller: assert len(modules) == 1 assert modules[0].id == 1 modules = models.ModuleBuild.by_state(db_session, "done") - assert len(modules) == 1 - assert modules[0].id == 2 - assert re.match("Gating failed.*", modules[0].state_reason) + assert len(modules) == 2 + for module in modules: + assert module.id in [2, 4] + if module.id == 2: + assert re.match("Gating failed.*", module.state_reason) + else: + assert module.state_reason is None