lib: Give Tags __getitem__() support

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-06-29 13:40:27 -04:00
parent 6e1da0f7b4
commit 7b204f2d1b
2 changed files with 9 additions and 0 deletions

View File

@ -17,6 +17,12 @@ class Tag:
self.TrackAdded = publisher.Publisher()
self.TrackRemoved = publisher.Publisher()
def __getitem__(self, n):
with self.lock:
if n < len(self.tracks):
return self.tracks[n]
return None
def __getstate__(self):
with self.lock:
return { "name" : self.name,

View File

@ -98,12 +98,15 @@ class TestTag(unittest.TestCase):
t = tag.Tag("test")
t.TrackAdded.register(self.callback_func)
self.assertIsNone(t[0])
t.add_track(fake.Track(1))
self.assertEqual(t[0], fake.Track(1))
self.assertEqual(t.tracks, [ fake.Track(1) ])
self.assertEqual(self.changed, (t, fake.Track(1), 0))
self.assertEqual(t.runtime, 1)
t.add_track(fake.Track(2))
self.assertEqual(t[1], fake.Track(2))
self.assertEqual(t.tracks, [ fake.Track(1), fake.Track(2) ])
self.assertEqual(self.changed, (t, fake.Track(2), 1))
self.assertEqual(t.runtime, 3)