2020-10-04 12:58:15 -04:00
|
|
|
# Copyright 2020 (c) Anna Schumaker.
|
2020-10-10 20:07:53 -04:00
|
|
|
from lib import publisher
|
2020-10-04 12:58:15 -04:00
|
|
|
import pathlib
|
|
|
|
import trackdb
|
|
|
|
import unittest
|
|
|
|
|
2020-10-04 15:28:30 -04:00
|
|
|
test_tracks = "./trier/Test Album"
|
2020-10-04 12:58:15 -04:00
|
|
|
|
|
|
|
class TestTrackDB(unittest.TestCase):
|
|
|
|
def setUp(self):
|
2020-10-10 20:07:53 -04:00
|
|
|
trackdb.LibraryAdded.register(self.on_library_added)
|
|
|
|
trackdb.LibraryRemoved.register(self.on_library_removed)
|
|
|
|
self.count_added = 0
|
|
|
|
self.count_removed = 0
|
|
|
|
|
|
|
|
def tearDown(self):
|
2020-10-04 12:58:15 -04:00
|
|
|
trackdb.reset()
|
|
|
|
|
2020-10-10 20:07:53 -04:00
|
|
|
def on_library_added(self, lib):
|
|
|
|
self.count_added += 1
|
|
|
|
|
|
|
|
def on_library_removed(self, lib):
|
|
|
|
self.count_removed += 1
|
|
|
|
|
2020-10-04 12:58:15 -04:00
|
|
|
def test_trackdb_init(self):
|
|
|
|
self.assertEqual(trackdb.library_paths, [ ])
|
2020-10-10 20:07:53 -04:00
|
|
|
self.assertIsInstance(trackdb.LibraryAdded, publisher.Publisher)
|
|
|
|
self.assertIsInstance(trackdb.LibraryRemoved, publisher.Publisher)
|
2020-10-04 12:58:15 -04:00
|
|
|
|
|
|
|
def test_trackdb_add_path(self):
|
2020-10-04 15:28:30 -04:00
|
|
|
lib = trackdb.add_path(test_tracks)
|
|
|
|
self.assertIsInstance(lib, trackdb.library.LibraryPath)
|
|
|
|
self.assertEqual(trackdb.library_paths, [ lib ])
|
2020-10-10 20:07:53 -04:00
|
|
|
self.assertEqual(self.count_added, 1)
|
|
|
|
self.assertEqual(self.count_removed, 0)
|
2020-10-04 15:28:30 -04:00
|
|
|
|
|
|
|
self.assertIsNone(trackdb.add_path(test_tracks))
|
|
|
|
self.assertEqual(len(trackdb.library_paths), 1)
|
2020-10-10 20:07:53 -04:00
|
|
|
self.assertEqual(self.count_added, 1)
|
|
|
|
self.assertEqual(self.count_removed, 0)
|
2020-10-04 12:58:15 -04:00
|
|
|
|
|
|
|
trackdb.remove_path(test_tracks)
|
|
|
|
self.assertEqual(trackdb.library_paths, [ ])
|
2020-10-10 20:07:53 -04:00
|
|
|
self.assertEqual(self.count_added, 1)
|
|
|
|
self.assertEqual(self.count_removed, 1)
|
2020-10-04 12:58:15 -04:00
|
|
|
|
2020-10-04 15:28:30 -04:00
|
|
|
def test_trackdb_get_library(self):
|
|
|
|
self.assertIsNone(trackdb.get_library(test_tracks))
|
|
|
|
lib = trackdb.add_path(test_tracks)
|
|
|
|
self.assertEqual(trackdb.get_library(test_tracks), lib)
|
|
|
|
|
2020-10-11 10:03:16 -04:00
|
|
|
def test_trackdb_get_track(self):
|
|
|
|
lib = trackdb.add_path(test_tracks)
|
|
|
|
lib.scan().join()
|
|
|
|
self.assertEqual(trackdb.get_track(3), lib[3])
|
|
|
|
self.assertIsNone(trackdb.get_track(200))
|
|
|
|
|
2020-10-04 12:58:15 -04:00
|
|
|
def test_trackdb_reset(self):
|
2020-10-10 18:11:37 -04:00
|
|
|
trackdb.library.TrackAdded.register(1)
|
|
|
|
trackdb.library.TrackRemoved.register(1)
|
2020-10-20 11:10:04 -04:00
|
|
|
trackdb.track.TrackUpdated.register(1)
|
2020-10-10 20:07:53 -04:00
|
|
|
trackdb.LibraryAdded.register(1)
|
|
|
|
trackdb.LibraryRemoved.register(1)
|
2020-10-04 12:58:15 -04:00
|
|
|
trackdb.library_paths = [ 1, 2, 3 ]
|
2020-10-10 18:11:37 -04:00
|
|
|
|
2020-10-04 12:58:15 -04:00
|
|
|
trackdb.reset()
|
|
|
|
self.assertEqual(trackdb.library_paths, [ ])
|
2020-10-10 18:11:37 -04:00
|
|
|
self.assertEqual(trackdb.library.TrackAdded.subscribers, set())
|
|
|
|
self.assertEqual(trackdb.library.TrackRemoved.subscribers, set())
|
2020-10-20 11:10:04 -04:00
|
|
|
self.assertEqual(trackdb.track.TrackUpdated.subscribers, set())
|
2020-10-10 20:07:53 -04:00
|
|
|
self.assertEqual(trackdb.LibraryAdded.subscribers, set())
|
|
|
|
self.assertEqual(trackdb.LibraryRemoved.subscribers, set())
|