playlist: Create a way to switch tags in the TagModel
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
035fcd3398
commit
91ef91a5f0
|
@ -20,3 +20,8 @@ class TagModel(GObject.GObject, Gio.ListModel):
|
|||
|
||||
def do_get_object(self, n):
|
||||
return self.tag[n]
|
||||
|
||||
def switch_tag(self, tag):
|
||||
prev = len(self.tag) if self.tag else 0
|
||||
self.tag = tag
|
||||
self.items_changed(0, prev, len(self.tag))
|
||||
|
|
|
@ -7,6 +7,12 @@ import unittest
|
|||
|
||||
|
||||
class TestTagModel(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.changed = (None, None, None)
|
||||
|
||||
def items_changed_cb(self, model, position, removed, added):
|
||||
self.changed = (position, removed, added)
|
||||
|
||||
def test_tag_model_init(self):
|
||||
t = tag.Tag("Test")
|
||||
m = model.TagModel(t)
|
||||
|
@ -27,3 +33,20 @@ class TestTagModel(unittest.TestCase):
|
|||
|
||||
self.assertEqual(m.get_n_items(), 0)
|
||||
self.assertIsNone(m.get_item(0))
|
||||
|
||||
def test_tag_model_switch_tag(self):
|
||||
t = tag.Tag("A")
|
||||
t.add_track(fake.Track(1))
|
||||
t.add_track(fake.Track(2))
|
||||
|
||||
u = tag.Tag("B")
|
||||
u.add_track(fake.Track(3))
|
||||
|
||||
m = model.TagModel()
|
||||
m.connect("items-changed", self.items_changed_cb)
|
||||
|
||||
m.switch_tag(t)
|
||||
self.assertEqual(self.changed, (0, 0, 2))
|
||||
|
||||
m.switch_tag(u)
|
||||
self.assertEqual(self.changed, (0, 2, 1))
|
||||
|
|
Loading…
Reference in New Issue