lib: Don't allow adding a track to a tag multiple times

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-07-14 14:09:36 -04:00
parent 54498f174a
commit fc82beca3d
2 changed files with 7 additions and 0 deletions

View File

@ -67,6 +67,8 @@ class Tag:
def add_track(self, track):
with self.lock:
if track in self.tracks:
return
pos = len(self.tracks)
self.tracks.append(track)
self.runtime += track.length

View File

@ -108,6 +108,11 @@ class TestTag(unittest.TestCase):
self.assertEqual(self.changed, (t, fake.Track(2), 1))
self.assertEqual(t.runtime, 3)
t.add_track(fake.Track(1))
self.assertEqual(t.tracks, [ fake.Track(1), fake.Track(2) ])
self.assertEqual(self.changed, (t, fake.Track(2), 1))
self.assertEqual(t.runtime, 3)
def test_tag_remove_track(self):
t = tag.Tag("test")
t.add_track(fake.Track(1))