emmental/test_trackdb.py

71 lines
2.5 KiB
Python

# Copyright 2020 (c) Anna Schumaker.
from lib import publisher
import pathlib
import trackdb
import unittest
test_tracks = "./trier/Test Album"
class TestTrackDB(unittest.TestCase):
def setUp(self):
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):
trackdb.reset()
def on_library_added(self, lib):
self.count_added += 1
def on_library_removed(self, lib):
self.count_removed += 1
def test_trackdb_init(self):
self.assertEqual(trackdb.library_paths, [ ])
self.assertIsInstance(trackdb.LibraryAdded, publisher.Publisher)
self.assertIsInstance(trackdb.LibraryRemoved, publisher.Publisher)
def test_trackdb_add_path(self):
lib = trackdb.add_path(test_tracks)
self.assertIsInstance(lib, trackdb.library.LibraryPath)
self.assertEqual(trackdb.library_paths, [ lib ])
self.assertEqual(self.count_added, 1)
self.assertEqual(self.count_removed, 0)
self.assertIsNone(trackdb.add_path(test_tracks))
self.assertEqual(len(trackdb.library_paths), 1)
self.assertEqual(self.count_added, 1)
self.assertEqual(self.count_removed, 0)
trackdb.remove_path(test_tracks)
self.assertEqual(trackdb.library_paths, [ ])
self.assertEqual(self.count_added, 1)
self.assertEqual(self.count_removed, 1)
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)
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))
def test_trackdb_reset(self):
trackdb.library.TrackAdded.register(1)
trackdb.library.TrackRemoved.register(1)
trackdb.LibraryAdded.register(1)
trackdb.LibraryRemoved.register(1)
trackdb.library_paths = [ 1, 2, 3 ]
trackdb.reset()
self.assertEqual(trackdb.library_paths, [ ])
self.assertEqual(trackdb.library.TrackAdded.subscribers, set())
self.assertEqual(trackdb.library.TrackRemoved.subscribers, set())
self.assertEqual(trackdb.LibraryAdded.subscribers, set())
self.assertEqual(trackdb.LibraryRemoved.subscribers, set())