From 295202443f4da91379ece9ef389812eba7c99af9 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 27 Dec 2021 16:35:19 -0500 Subject: [PATCH] scanner: Add a function for clearing the TaskQueue And call this function when closing the player Signed-off-by: Anna Schumaker --- emmental.py | 2 ++ scanner/queue.py | 3 +++ scanner/test_queue.py | 10 ++++++++++ 3 files changed, 15 insertions(+) diff --git a/emmental.py b/emmental.py index b4c48fd..e319bef 100755 --- a/emmental.py +++ b/emmental.py @@ -4,6 +4,7 @@ import lib lib.settings.load() import db +import scanner import ui from gi.repository import Gtk @@ -22,6 +23,7 @@ class Application(Gtk.Application): def do_shutdown(self): Gtk.Application.do_shutdown(self) + scanner.Queue.clear() db.sql.optimize() if __name__ == "__main__": diff --git a/scanner/queue.py b/scanner/queue.py index 0038bd5..0dcfee0 100644 --- a/scanner/queue.py +++ b/scanner/queue.py @@ -17,6 +17,9 @@ class TaskQueue(GObject.GObject): def push(self, task): self.emit("task-pushed", task) + def clear(self): + self.emit("tasks-finished") + def run(self): self.emit("run-task", self.tasks.pop(0)) if len(self.tasks) > 0: diff --git a/scanner/test_queue.py b/scanner/test_queue.py index 798b919..415a1b0 100644 --- a/scanner/test_queue.py +++ b/scanner/test_queue.py @@ -42,6 +42,16 @@ class TestTaskQueue(unittest.TestCase): self.assertIsNotNone(q.idleid) self.assertEqual(self.pushed_task, fake) + def test_clear(self): + q = queue.TaskQueue() + q.connect("tasks-finished", self.on_tasks_finished) + + q.push(FakeTask()) + q.clear() + self.assertEqual(q.tasks, [ ]) + self.assertTrue(self.tasks_finished) + self.assertIsNone(q.idleid) + def test_run(self): q = queue.TaskQueue() fake3 = FakeTask()