scanner: Create a global Queue instance

And some convenience functions for using it

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-08-30 10:57:05 -04:00
parent e09d892a46
commit 5f6f3f9f42
2 changed files with 44 additions and 0 deletions

View File

@ -3,3 +3,14 @@ from . import metadata
from . import queue
from . import task
from . import widgets
Queue = queue.TaskQueue()
def import_track(lib, track, playcount, lastplayed):
Queue.push(task.ImportTask(lib, track, playcount, lastplayed))
def update_library(lib):
Queue.push(task.CheckSchedulerTask(lib))
def remove_library(lib):
Queue.push(task.RemoveLibrarySchedulerTask(lib))

33
scanner/test_scanner.py Normal file
View File

@ -0,0 +1,33 @@
# Copyright 2021 (c) Anna Schumaker.
import datetime
import db
import pathlib
import scanner
import unittest
test_album = pathlib.Path("./data/Test Album")
test_track = test_album / "01 - Test Track.ogg"
class TestScanner(unittest.TestCase):
def tearDown(self):
scanner.Queue.tasks_finished()
def test_scanner_init(self):
self.assertIsInstance(scanner.Queue, scanner.queue.TaskQueue)
def test_scanner_import_track(self):
lib = db.library.Table.find(test_album)
scanner.import_track(lib, test_track, 2, datetime.date.today())
self.assertIsInstance(scanner.Queue.tasks[0], scanner.task.ImportTask)
def test_scanner_update_library(self):
lib = db.library.Table.find(test_album)
scanner.update_library(lib)
self.assertIsInstance(scanner.Queue.tasks[0],
scanner.task.CheckSchedulerTask)
def test_scanner_remove_library(self):
lib = db.library.Table.find(test_album)
scanner.remove_library(lib)
self.assertIsInstance(scanner.Queue.tasks[0],
scanner.task.RemoveLibrarySchedulerTask)