scanner: Add an ImportTask
For importing tracks from the tagdb Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
3402ce16ee
commit
9cced017ad
|
@ -32,3 +32,15 @@ class FileTask(Task):
|
|||
for genre in meta.genres():
|
||||
db.genre.Map.insert(db.genre.Table.find(genre), track)
|
||||
db.playlist.TempMap.insert(db.playlist.Table.find("New Tracks"), track)
|
||||
|
||||
|
||||
class ImportTask(FileTask):
|
||||
def __init__(self, library, filepath, playcount, lastplayed):
|
||||
FileTask.__init__(self, library, filepath)
|
||||
self.playcount = playcount
|
||||
self.lastplayed = lastplayed
|
||||
|
||||
def run_task(self):
|
||||
FileTask.run_task(self)
|
||||
if track := db.track.Table.lookup(self.filepath):
|
||||
track.last_played(self.playcount, self.lastplayed)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
import datetime
|
||||
import db
|
||||
import pathlib
|
||||
import unittest
|
||||
|
@ -58,3 +59,26 @@ class TestScannerFileTask(unittest.TestCase):
|
|||
|
||||
new = db.playlist.Table.find("New Tracks")
|
||||
self.assertEqual(db.playlist.TempMap.lookup_tracks(new), [ track ])
|
||||
|
||||
|
||||
class TestScannerImportTask(unittest.TestCase):
|
||||
def setUp(self):
|
||||
db.reset()
|
||||
|
||||
def test_scanner_import_task(self):
|
||||
today = datetime.date.today()
|
||||
lib = db.library.Table.find(test_tracks)
|
||||
it = task.ImportTask(lib, test_track01, 4, today)
|
||||
|
||||
self.assertIsInstance(it, task.FileTask)
|
||||
self.assertEqual(it.library, lib)
|
||||
self.assertEqual(it.filepath, test_track01)
|
||||
self.assertEqual(it.playcount, 4)
|
||||
self.assertEqual(it.lastplayed, today)
|
||||
|
||||
self.assertIsNone(it.run_task())
|
||||
|
||||
track = db.track.Table.lookup(test_track01)
|
||||
self.assertEqual(track.playcount, 4)
|
||||
self.assertEqual(track.lastplayed,
|
||||
datetime.datetime.combine(today, datetime.time()))
|
||||
|
|
Loading…
Reference in New Issue