emmental/playlist/test_controls.py

65 lines
2.5 KiB
Python

# Copyright 2021 (c) Anna Schumaker.
from . import controls
from . import filter
from . import popover
from gi.repository import Gtk
import tagdb
import unittest
class TestPlaylistControls(unittest.TestCase):
def test_playlist_controls_init(self):
ctrl = controls.Controls()
self.assertIsInstance(ctrl, Gtk.Box)
self.assertIsInstance(ctrl.search, Gtk.SearchEntry)
self.assertIsInstance(ctrl.random, Gtk.ToggleButton)
self.assertIsInstance(ctrl.loop, Gtk.ToggleButton)
self.assertIsInstance(ctrl.add_popover, popover.AddPopover)
self.assertIsInstance(ctrl.add, Gtk.MenuButton)
self.assertIsInstance(ctrl.filter, filter.Filter)
self.assertEqual(ctrl.random.get_icon_name(), "media-playlist-shuffle")
self.assertEqual(ctrl.loop.get_icon_name(), "media-playlist-repeat")
self.assertEqual(ctrl.add.get_icon_name(), "list-add")
self.assertEqual(ctrl.add.get_popover(), ctrl.add_popover)
self.assertEqual(ctrl.search.get_property("placeholder-text"),
"Type to filter tracks")
self.assertTrue(ctrl.has_css_class("linked"))
self.assertTrue(ctrl.search.get_hexpand())
self.assertIn(ctrl.search, ctrl)
self.assertIn(ctrl.random, ctrl)
self.assertIn(ctrl.loop, ctrl)
self.assertIn(ctrl.add, ctrl)
def test_playlist_controls_set_tag(self):
ctrl = controls.Controls()
fav = tagdb.tags.User["Favorites"]
prev = tagdb.tags.User["Previous"]
self.assertIsNone(ctrl.tag)
self.assertFalse(ctrl.random.get_sensitive())
self.assertFalse(ctrl.random.get_active())
self.assertFalse(ctrl.loop.get_sensitive())
self.assertFalse(ctrl.loop.get_active())
self.assertFalse(ctrl.add.get_sensitive())
fav.random = True
fav.loop = True
ctrl.set_tag(fav)
self.assertEqual(ctrl.tag, fav)
self.assertTrue(ctrl.random.get_sensitive())
self.assertTrue(ctrl.random.get_active())
self.assertTrue(ctrl.loop.get_sensitive())
self.assertTrue(ctrl.loop.get_active())
self.assertTrue(ctrl.add.get_sensitive())
ctrl.set_tag(prev)
self.assertEqual(ctrl.tag, prev)
self.assertFalse(ctrl.random.get_sensitive())
self.assertFalse(ctrl.random.get_active())
self.assertFalse(ctrl.loop.get_sensitive())
self.assertFalse(ctrl.loop.get_active())
self.assertTrue(ctrl.add.get_sensitive())