Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit a3fc2ff0b4639acfde435a8410f54037b8b669b8
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Fri Nov 28 14:21:03 2014 +0100
[backend] dispatcher: handle None value obtained from job_queue
---------------------------------------------------------------
backend/backend/dispatcher.py | 2 ++
backend/tests/test_dispatcher.py | 12 ++++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/backend/backend/dispatcher.py b/backend/backend/dispatcher.py
index 13fcb5d..ead03c9 100644
--- a/backend/backend/dispatcher.py
+++ b/backend/backend/dispatcher.py
@@ -446,6 +446,8 @@ class Worker(multiprocessing.Process):
task = self.task_queue.dequeue()
except TypeError:
return
+ if not task:
+ return
# import ipdb; ipdb.set_trace()
job = BuildJob(task.data, self.opts)
diff --git a/backend/tests/test_dispatcher.py b/backend/tests/test_dispatcher.py
index 044500b..9f15282 100644
--- a/backend/tests/test_dispatcher.py
+++ b/backend/tests/test_dispatcher.py
@@ -617,6 +617,18 @@ class TestDispatcher(object):
assert not self.worker.starting_build.called
assert not self.worker.pkg_built_before.called
+ def test_obtain_job_dequeue_none_result(self, init_worker):
+ mc_tq = MagicMock()
+ self.worker.task_queue = mc_tq
+ self.worker.starting_build = MagicMock()
+ self.worker.pkg_built_before = MagicMock()
+ self.worker.pkg_built_before.return_value = False
+
+ mc_tq.dequeue.return_value = None
+ assert self.worker.obtain_job() is None
+ assert not self.worker.starting_build.called
+ assert not self.worker.pkg_built_before.called
+
def test_obtain_job_on_starting_build(self, init_worker):
mc_tq = MagicMock()
self.worker.task_queue = mc_tq