emmental/curds/playlist/test_genre.py

73 lines
2.7 KiB
Python

# Copyright 2019 (c) Anna Schumaker.
from . import genre
from . import playlist
from .. import notify
from .. import trak
from .. import tree
import os
import unittest
test_library = os.path.abspath("./trier/Test Library/Test Artist 01")
class TestGenrePlaylist(unittest.TestCase):
def setUp(self):
notify.clear()
trak.reset()
def test_genre_node(self):
gnode = genre.GenreNode()
self.assertIsInstance(gnode, tree.ETree)
self.assertEqual(gnode.name, "Genres")
self.assertEqual(gnode.icon, "emblem-generic")
def test_genre_playlist(self):
gnode = genre.GenreNode()
track = trak.lookup(os.path.join(test_library, "Test Album 1",
"01 - Test Track 01.ogg"))
self.assertEqual(gnode.n_children(), 1)
plist = gnode.nth_child(0)
self.assertEqual(plist.name, "Test Genre 1")
self.assertEqual(plist.icon, "emblem-generic")
self.assertEqual(plist[0], track)
def test_genre_alloc_child(self):
gnode = genre.GenreNode()
plist = gnode.alloc_child("Test Genre", genre.GENRE_ICON)
self.assertIsInstance(plist, playlist.Playlist)
self.assertEqual(plist.name, "Test Genre")
self.assertEqual(plist.icon, "emblem-generic")
self.assertEqual(plist.sort_order,
[ "artist", "date", "album", "discnumber", "tracknumber" ])
def test_genre_new_tracks(self):
gnode = genre.GenreNode()
track1 = trak.lookup(os.path.join(test_library, "Test Album 1",
"01 - Test Track 01.ogg"))
track2 = trak.lookup(os.path.join(test_library, "Test Album 2",
"02 - Test Track 02.ogg"))
track3 = trak.lookup(os.path.join(test_library, "Test Album 2",
"03 - Test Track 03.ogg"))
self.assertEqual(gnode.n_children(), 2)
plist = gnode.nth_child(0)
self.assertEqual(plist.name, "Test Genre 1")
self.assertEqual(len(plist), 1)
self.assertEqual(plist[0], track1)
plist = gnode.nth_child(1)
self.assertEqual(plist.name, "Test Genre 2")
self.assertEqual(len(plist), 2)
self.assertEqual(plist[0], track2)
self.assertEqual(plist[1], track3)
def test_genre_reset(self):
gnode = genre.GenreNode()
plist = playlist.Playlist("Test Playlist")
gnode.insert_child(plist)
notify.cancel("new-track", gnode.new_track)
gnode.reset()
self.assertEqual(gnode.n_children(), 0)
self.assertIn((gnode.new_track, False), notify.events["new-track"])