emmental/playlist/test_popover.py

77 lines
2.8 KiB
Python

# Copyright 2021 (c) Anna Schumaker.
from . import popover
from gi.repository import Gtk
import tagdb
import unittest
class TestAddPopover(unittest.TestCase):
def setUp(self):
tagdb.reset()
def test_add_popover_init(self):
pop = popover.AddPopover()
self.assertIsInstance(pop, Gtk.Popover)
self.assertIsInstance(pop.box, Gtk.Box)
self.assertIsInstance(pop.listbox, Gtk.ListBox)
self.assertIsInstance(pop.entry, Gtk.Entry)
self.assertEqual(pop.entry.get_placeholder_text(), "New Playlist")
self.assertEqual(pop.entry.get_icon_name(Gtk.EntryIconPosition.PRIMARY),
"list-add")
self.assertEqual(pop.get_child(), pop.box)
self.assertIn(pop.listbox, pop.box)
self.assertIn(pop.entry, pop.box)
def test_add_popover_row(self):
tag = tagdb.tags.User["Favorites"]
row = popover.AddPopoverRow(tag)
self.assertEqual(popover.Exclude,
[ "Collection", "New Tracks", "Previous" ])
self.assertEqual(popover.Icons, { "Favorites" : "emblem-favorites",
"Up Next" : "edit-redo" })
self.assertIsInstance(row.box, Gtk.Box)
self.assertIsInstance(row.icon, Gtk.Image)
self.assertIsInstance(row.label, Gtk.Label)
self.assertEqual(row.tag, tag)
self.assertEqual(row.icon.get_icon_name(), "emblem-favorites")
self.assertEqual(row.label.get_text(), "Favorites")
self.assertEqual(row.box.get_spacing(), 5)
self.assertEqual(row.get_child(), row.box)
self.assertIn(row.icon, row.box)
self.assertIn(row.label, row.box)
def test_add_popover_list(self):
pop = popover.AddPopover()
user = tagdb.tags.User
self.assertEqual(pop.listbox.get_row_at_index(0).tag, user["Favorites"])
self.assertEqual(pop.listbox.get_row_at_index(1).tag, user["Up Next"])
self.assertIsNone(pop.listbox.get_row_at_index(2))
tag = user.add("Test")
self.assertEqual(pop.listbox.get_row_at_index(0).tag, user["Favorites"])
self.assertEqual(pop.listbox.get_row_at_index(1).tag, user["Test"])
self.assertEqual(pop.listbox.get_row_at_index(2).tag, user["Up Next"])
self.assertIsNone(pop.listbox.get_row_at_index(3))
user.remove(tag)
self.assertEqual(pop.listbox.get_row_at_index(0).tag, user["Favorites"])
self.assertEqual(pop.listbox.get_row_at_index(1).tag, user["Up Next"])
self.assertIsNone(pop.listbox.get_row_at_index(2))
def test_add_popover_entry(self):
pop = popover.AddPopover()
pop.entry.set_text("Test")
pop.entry_activate(pop.entry)
tag = tagdb.tags.User["Test"]
self.assertIsNotNone(tag)
self.assertEqual(pop.entry.get_text(), "")