emmental/sidebar/test_user.py

48 lines
2.0 KiB
Python

# Copyright 2021 (c) Anna Schumaker.
from . import tagbox
from . import tagrow
from . import user
from gi.repository import Gtk
import tagdb
import unittest
Expected = [ ("Collection", "media-playback-start", tagrow.TagRow),
("Favorites", "emblem-favorites", tagrow.TagRow),
("New Tracks", "starred", tagrow.TagRow),
("Previous", "edit-undo", tagrow.TagRow),
("Test", "audio-x-generic", user.UserTagRow),
("Up Next", "edit-redo", tagrow.TagRow) ]
class TestUserSidebar(unittest.TestCase):
def test_user_sidebar_init(self):
self.assertIsInstance(user.TagBox, user.UserTagBox)
self.assertIsInstance(user.TagBox, tagbox.TagBox)
self.assertEqual(user.Icons["Collection"], "media-playback-start")
self.assertEqual(user.Icons["Favorites"], "emblem-favorites")
self.assertEqual(user.Icons["New Tracks"], "starred")
self.assertEqual(user.Icons["Previous"], "edit-undo")
self.assertEqual(user.Icons["Up Next"], "edit-redo")
def test_user_sidebar_row(self):
tag = tagdb.tags.User.add("Test")
row = user.UserTagRow(tag, "audio-x-generic")
self.assertIsInstance(row.remove, Gtk.Button)
self.assertIsInstance(row.KeyEvent, Gtk.EventControllerKey)
self.assertEqual(row.remove.get_icon_name(), "list-remove")
self.assertIn(row.remove, row.grid)
row.remove_tag(row.remove)
self.assertIsNone(tagdb.tags.User["Test"])
def test_user_sidebar(self):
user.TagBox = user.UserTagBox(tagdb.tags.User, "audio-x-generic")
tag = tagdb.tags.User.add("Test")
user.TagBox.bus.complete()
for (i, (tag, icon, type)) in enumerate(Expected):
self.assertIsInstance(user.TagBox[i], type)
self.assertEqual(user.TagBox[i].tag, tagdb.tags.User[tag])
self.assertEqual(user.TagBox[i].image.get_icon_name(), icon)