This adds a button users can click to remove the playlists they create. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
98 lines
3.6 KiB
Python
98 lines
3.6 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
import db
|
|
import unittest
|
|
from gi.repository import Gtk
|
|
from gi.repository import Pango
|
|
from . import row
|
|
|
|
class TestLabel(unittest.TestCase):
|
|
def test_init(self):
|
|
label = row.Label()
|
|
self.assertIsInstance(label, Gtk.Label)
|
|
self.assertEqual(label.get_ellipsize(), Pango.EllipsizeMode.MIDDLE)
|
|
self.assertEqual(label.get_halign(), Gtk.Align.START)
|
|
self.assertTrue(label.get_hexpand())
|
|
|
|
|
|
class TestGrid(unittest.TestCase):
|
|
def setUp(self): db.reset()
|
|
|
|
def test_init(self):
|
|
grid = row.Grid()
|
|
self.assertIsInstance(grid, Gtk.Grid)
|
|
self.assertIsInstance(grid.icon, Gtk.Image)
|
|
self.assertIsInstance(grid.name, row.Label)
|
|
self.assertIsInstance(grid.count, row.Label)
|
|
self.assertEqual(grid.get_column_spacing(), 5)
|
|
|
|
def test_attach(self):
|
|
grid = row.Grid()
|
|
self.assertEqual(grid.get_child_at(0, 0), grid.icon)
|
|
self.assertEqual(grid.get_child_at(1, 0), grid.name)
|
|
self.assertEqual(grid.get_child_at(1, 1), grid.count)
|
|
|
|
def test_set_item(self):
|
|
artist = db.artist.Table.find("Test Artist", "Test Sort")
|
|
grid = row.Grid()
|
|
|
|
grid.set_item(artist)
|
|
self.assertEqual(grid.icon.get_icon_name(), artist.icon_name)
|
|
self.assertEqual(grid.name.get_text(), "Test Artist")
|
|
self.assertEqual(grid.count.get_text(), "0 Tracks")
|
|
|
|
grid.unset_item(artist)
|
|
track = db.make_fake_track(1, 1, "Test Track", "/a/b/c/1.ogg")
|
|
self.assertEqual(grid.count.get_text(), "0 Tracks")
|
|
|
|
def test_count_label(self):
|
|
artist = db.artist.Table.find("Test Artist", "Test Sort")
|
|
grid = row.Grid()
|
|
|
|
grid.set_item(artist)
|
|
self.assertEqual(grid.count.get_text(), "0 Tracks")
|
|
track = db.make_fake_track(1, 1, "Test Track", "/a/b/c/1.ogg")
|
|
self.assertEqual(grid.count.get_text(), "1 Track")
|
|
|
|
grid.count.set_text("abcde")
|
|
artist.refresh()
|
|
self.assertEqual(grid.count.get_text(), "1 Track")
|
|
|
|
db.track.Table.delete(track)
|
|
artist.remove_track(track, False)
|
|
self.assertEqual(grid.count.get_text(), "0 Tracks")
|
|
|
|
|
|
class TestUserGrid(unittest.TestCase):
|
|
def tearDown(self): db.reset()
|
|
|
|
def test_init(self):
|
|
grid = row.UserGrid()
|
|
self.assertIsInstance(grid, row.Grid)
|
|
self.assertIsInstance(grid.remove, Gtk.Button)
|
|
self.assertEqual(grid.get_child_at(2, 0), grid.remove)
|
|
self.assertEqual(grid.remove.get_icon_name(), "list-remove")
|
|
self.assertEqual(grid.remove.get_halign(), Gtk.Align.CENTER)
|
|
self.assertEqual(grid.remove.get_valign(), Gtk.Align.CENTER)
|
|
self.assertTrue(grid.remove.has_css_class("flat"))
|
|
|
|
def test_set_item(self):
|
|
grid = row.UserGrid()
|
|
grid.set_item(db.user.Table.find("Collection"))
|
|
self.assertFalse(grid.remove.get_visible())
|
|
grid.set_item(db.user.Table.find("Favorites"))
|
|
self.assertFalse(grid.remove.get_visible())
|
|
grid.set_item(db.user.Table.find("New Tracks"))
|
|
self.assertFalse(grid.remove.get_visible())
|
|
grid.set_item(db.user.Table.find("Previous"))
|
|
self.assertFalse(grid.remove.get_visible())
|
|
grid.set_item(db.user.Table.find("Queued Tracks"))
|
|
self.assertFalse(grid.remove.get_visible())
|
|
grid.set_item(db.user.Table.find("Test Playlist"))
|
|
self.assertTrue(grid.remove.get_visible())
|
|
|
|
def test_click(self):
|
|
grid = row.UserGrid()
|
|
grid.set_item(db.user.Table.find("Test Playlist"))
|
|
grid.remove.emit("clicked")
|
|
self.assertIsNone(db.user.Table.lookup("Test Playlist"))
|