emmental/playlist/test_header.py

90 lines
3.3 KiB
Python
Raw Normal View History

# Copyright 2021 (c) Anna Schumaker.
import db
import lib
import unittest
from gi.repository import Gtk
from . import header
from . import model
class TestFilterEntry(unittest.TestCase):
def test_init(self):
entry = header.FilterEntry()
self.assertIsInstance(entry, lib.filter.Entry)
self.assertEqual(entry.filter, model.PlaylistFilter)
self.assertEqual(entry.get_margin_start(), 200)
self.assertEqual(entry.get_margin_end(), 200)
self.assertTrue(entry.get_hexpand())
class TestPropertyToggle(unittest.TestCase):
def test_init(self):
prop = header.PropertyToggle("random", "media-playlist-shuffle")
self.assertIsInstance(prop, Gtk.ToggleButton)
self.assertEqual(prop.get_icon_name(), "media-playlist-shuffle")
self.assertFalse(prop.get_sensitive())
self.assertEqual(prop.property, "random")
self.assertIsNone(prop.playlist)
prop.set_active(True)
def test_set_playlist(self):
collection = db.user.Table.find("Collection")
prop = header.PropertyToggle("random", "media-playlist-shuffle")
collection.set_property("random", True)
prop.set_playlist(collection)
self.assertEqual(prop.playlist, collection)
self.assertTrue(prop.get_active())
self.assertFalse(prop.get_sensitive())
collection.set_property("random", False)
prop.set_playlist(collection)
self.assertFalse(prop.get_active())
def test_toggle(self):
collection = db.user.Table.find("Collection")
prop = header.PropertyToggle("random", "media-playlist-shuffle")
collection.set_property("random", False)
prop.set_playlist(collection)
prop.set_active(True)
self.assertTrue(collection.get_property("random"))
prop.set_active(False)
self.assertFalse(collection.get_property("random"))
class TestRandomToggle(unittest.TestCase):
def test_init(self):
random = header.RandomToggle()
self.assertIsInstance(random, header.PropertyToggle)
self.assertEqual(random.get_icon_name(), "media-playlist-shuffle")
self.assertEqual(random.property, "random")
def test_set_playlist(self):
random = header.RandomToggle()
random.set_playlist(db.user.Table.find("Collection"))
self.assertTrue(random.get_sensitive())
random.set_playlist(db.user.Table.find("Previous"))
self.assertFalse(random.get_sensitive())
class TestLoopToggle(unittest.TestCase):
def test_init(self):
loop = header.LoopToggle()
self.assertIsInstance(loop, header.PropertyToggle)
self.assertEqual(loop.get_icon_name(), "media-playlist-repeat")
self.assertEqual(loop.property, "loop")
def test_set_playlist(self):
loop = header.LoopToggle()
loop.set_playlist(db.user.Table.find("Collection"))
self.assertFalse(loop.get_sensitive())
loop.set_playlist(db.user.Table.find("Favorites"))
self.assertTrue(loop.get_sensitive())
loop.set_playlist(db.user.Table.find("New Tracks"))
self.assertTrue(loop.get_sensitive())
loop.set_playlist(db.user.Table.find("Previous"))
self.assertFalse(loop.get_sensitive())
loop.set_playlist(db.user.Table.find("Queued Tracks"))
self.assertFalse(loop.get_sensitive())