2019-04-19 14:45:39 -04:00
|
|
|
# Copyright 2019 (c) Anna Schumaker
|
|
|
|
from . import artist
|
2019-06-01 22:34:06 -04:00
|
|
|
from . import playlist
|
2019-04-19 14:45:39 -04:00
|
|
|
from .. import notify
|
2019-12-16 13:43:40 -05:00
|
|
|
from .. import tree
|
2019-04-19 14:45:39 -04:00
|
|
|
import os
|
2020-11-15 17:09:54 -05:00
|
|
|
import pathlib
|
|
|
|
import trackdb
|
2019-04-19 14:45:39 -04:00
|
|
|
import unittest
|
|
|
|
|
2020-11-15 17:09:54 -05:00
|
|
|
test_album = pathlib.Path("./trier/Test Library/Test Artist 01/Test Album 1")
|
2019-04-19 14:45:39 -04:00
|
|
|
|
|
|
|
class TestArtistPlaylist(unittest.TestCase):
|
2019-06-01 22:34:06 -04:00
|
|
|
def setUp(self):
|
2019-12-04 10:39:41 -05:00
|
|
|
notify.clear()
|
2020-11-15 19:57:59 -05:00
|
|
|
trackdb.reset()
|
2020-11-15 17:09:54 -05:00
|
|
|
self.lib = trackdb.add_path(test_album)
|
2019-04-19 14:45:39 -04:00
|
|
|
|
2019-06-01 22:34:06 -04:00
|
|
|
def test_artist_node(self):
|
2019-04-19 14:45:39 -04:00
|
|
|
anode = artist.ArtistNode()
|
2019-12-16 13:43:40 -05:00
|
|
|
self.assertIsInstance(anode, tree.ETree)
|
2019-04-19 14:45:39 -04:00
|
|
|
self.assertEqual(anode.name, "Artists")
|
2019-04-19 17:00:39 -04:00
|
|
|
self.assertEqual(anode.icon, "avatar-default-symbolic")
|
2019-04-19 14:45:39 -04:00
|
|
|
|
2019-08-16 10:00:09 -04:00
|
|
|
def test_artist_alloc_child(self):
|
2019-06-01 22:34:06 -04:00
|
|
|
anode = artist.ArtistNode()
|
2019-12-17 12:22:52 -05:00
|
|
|
plist = anode.alloc_child("Test Artist")
|
2019-06-01 22:34:06 -04:00
|
|
|
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" ])
|
2019-04-19 14:45:39 -04:00
|
|
|
|
2019-06-01 22:34:06 -04:00
|
|
|
def test_artist_node_new_track(self):
|
|
|
|
anode = artist.ArtistNode()
|
|
|
|
self.assertEqual(anode.n_children(), 0)
|
|
|
|
|
2020-11-15 19:57:59 -05:00
|
|
|
track = self.lib.add_track("01 - Test Track 01.ogg")
|
2019-06-01 22:34:06 -04:00
|
|
|
self.assertEqual(anode.n_children(), 1)
|
2019-04-19 14:45:39 -04:00
|
|
|
plist = anode.nth_child(0)
|
|
|
|
self.assertEqual(plist.name, "Test Artist 01")
|
2019-04-19 17:00:39 -04:00
|
|
|
self.assertEqual(plist.icon, "avatar-default-symbolic")
|
2019-06-01 22:34:06 -04:00
|
|
|
self.assertEqual(plist[0], track)
|
2019-04-24 09:30:12 -04:00
|
|
|
|
2019-06-01 22:34:06 -04:00
|
|
|
def test_artist_node_reset(self):
|
|
|
|
anode = artist.ArtistNode()
|
|
|
|
anode.children.append(42)
|
2020-11-15 17:43:07 -05:00
|
|
|
trackdb.library.TrackAdded.unregister(anode.new_track)
|
2019-04-19 14:45:39 -04:00
|
|
|
|
2019-06-01 22:34:06 -04:00
|
|
|
anode.reset()
|
|
|
|
self.assertEqual(len(anode.children), 0)
|
2020-11-15 17:43:07 -05:00
|
|
|
self.assertIn(anode.new_track, trackdb.library.TrackAdded.subscribers)
|
2019-04-19 14:45:39 -04:00
|
|
|
|
2019-06-01 22:34:06 -04:00
|
|
|
def test_artist_playlist_alloc(self):
|
2019-08-16 10:00:09 -04:00
|
|
|
anode = artist.ArtistPlaylist("Test Playlist", artist.ARTIST_ICON)
|
2019-12-17 12:22:52 -05:00
|
|
|
album = anode.alloc_child("Test Album")
|
2019-04-19 14:45:39 -04:00
|
|
|
|
2019-06-01 22:34:06 -04:00
|
|
|
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" ])
|
2019-04-19 14:45:39 -04:00
|
|
|
|
2019-06-01 22:34:06 -04:00
|
|
|
def test_artist_playlist_add(self):
|
|
|
|
anode = artist.ArtistNode()
|
2020-11-15 19:57:59 -05:00
|
|
|
track = self.lib.add_track("01 - Test Track 01.ogg")
|
2019-06-01 22:34:06 -04:00
|
|
|
plist = anode.nth_child(0)
|
2019-04-19 14:45:39 -04:00
|
|
|
|
2019-06-01 22:34:06 -04:00
|
|
|
self.assertEqual(plist.n_children(), 1)
|
|
|
|
album = plist.nth_child(0)
|
|
|
|
self.assertIsInstance(album, playlist.Playlist)
|
|
|
|
self.assertEqual(album.name, "Test Album 1")
|