# 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(), "")