emmental/curds/playlist/test_artist.py
Anna Schumaker 6f0d092414 trackdb: Give LibraryPaths an add_track() function
To mimic how curds.trak.lookup() works, only in the library path itself.

We also take this time to delete the curds/trak directory as nothing
there is used anymore.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2020-11-15 19:57:59 -05:00

71 lines
2.5 KiB
Python

# Copyright 2019 (c) Anna Schumaker
from . import artist
from . import playlist
from .. import notify
from .. import tree
import os
import pathlib
import trackdb
import unittest
test_album = pathlib.Path("./trier/Test Library/Test Artist 01/Test Album 1")
class TestArtistPlaylist(unittest.TestCase):
def setUp(self):
notify.clear()
trackdb.reset()
self.lib = trackdb.add_path(test_album)
def test_artist_node(self):
anode = artist.ArtistNode()
self.assertIsInstance(anode, tree.ETree)
self.assertEqual(anode.name, "Artists")
self.assertEqual(anode.icon, "avatar-default-symbolic")
def test_artist_alloc_child(self):
anode = artist.ArtistNode()
plist = anode.alloc_child("Test Artist")
self.assertIsInstance(plist, artist.ArtistPlaylist)
self.assertEqual(plist.name, "Test Artist")
self.assertEqual(plist.icon, "avatar-default-symbolic")
self.assertEqual(plist.sort_order, [ "album", "discnumber", "tracknumber" ])
def test_artist_node_new_track(self):
anode = artist.ArtistNode()
self.assertEqual(anode.n_children(), 0)
track = self.lib.add_track("01 - Test Track 01.ogg")
self.assertEqual(anode.n_children(), 1)
plist = anode.nth_child(0)
self.assertEqual(plist.name, "Test Artist 01")
self.assertEqual(plist.icon, "avatar-default-symbolic")
self.assertEqual(plist[0], track)
def test_artist_node_reset(self):
anode = artist.ArtistNode()
anode.children.append(42)
trackdb.library.TrackAdded.unregister(anode.new_track)
anode.reset()
self.assertEqual(len(anode.children), 0)
self.assertIn(anode.new_track, trackdb.library.TrackAdded.subscribers)
def test_artist_playlist_alloc(self):
anode = artist.ArtistPlaylist("Test Playlist", artist.ARTIST_ICON)
album = anode.alloc_child("Test Album")
self.assertIsInstance(album, playlist.Playlist)
self.assertEqual(album.name, "Test Album")
self.assertEqual(album.icon, "media-optical-cd-audio")
self.assertEqual(album.sort_order, [ "discnumber", "tracknumber" ])
def test_artist_playlist_add(self):
anode = artist.ArtistNode()
track = self.lib.add_track("01 - Test Track 01.ogg")
plist = anode.nth_child(0)
self.assertEqual(plist.n_children(), 1)
album = plist.nth_child(0)
self.assertIsInstance(album, playlist.Playlist)
self.assertEqual(album.name, "Test Album 1")