emmental/curds/playlist/test_artist.py

69 lines
2.5 KiB
Python
Raw Normal View History

# Copyright 2019 (c) Anna Schumaker
from . import artist
from . import node
from . import playlist
from .. import notify
from .. import trak
import os
import unittest
test_album = os.path.join("./trier/Test Library/Test Artist 01/Test Album 1")
class TestArtistPlaylist(unittest.TestCase):
def setUp(self):
notify.clear()
trak.reset()
def test_artist_node(self):
anode = artist.ArtistNode()
self.assertIsInstance(anode, node.PlaylistNode)
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", artist.ARTIST_ICON)
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 = trak.lookup(os.path.join(test_album, "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)
notify.cancel("new-track", anode.new_track)
anode.reset()
self.assertEqual(len(anode.children), 0)
self.assertIn((anode.new_track, False), notify.events["new-track"])
def test_artist_playlist_alloc(self):
anode = artist.ArtistPlaylist("Test Playlist", artist.ARTIST_ICON)
album = anode.alloc_child("Test Album", artist.ALBUM_ICON)
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 = trak.lookup(os.path.join(test_album, "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")