emmental/curds/test_track.py

70 lines
3.2 KiB
Python

# Copyright 2019 (c) Anna Schumaker.
import mutagen
import unittest
import os
import track
test_tracks = os.path.abspath("./trier/Test Album")
class TestTrackClass(unittest.TestCase):
def test_init_basic(self):
p = [ test_tracks, "01 - Test Track.ogg" ]
t = track.Track(os.path.join(*p))
self.assertEqual(t.path, os.path.join(*p))
self.assertEqual(t.title, "Test Track")
self.assertEqual(t.artist, "Test Artist")
self.assertEqual(t.tracknumber, 1)
self.assertEqual(t.length, 10)
self.assertEqual(t.discnumber, 1)
self.assertEqual(t.album.album, "Test Album")
self.assertEqual(t.album.date, 2019)
self.assertEqual(t.album.genre, "Test")
self.assertEqual(t.album.albumartist, "Test Artist")
self.assertEqual(len(track.tracklist), 0)
def test_init_empty(self):
p = [ test_tracks, "00 - Empty Track.ogg" ]
t = track.Track(os.path.join(*p))
self.assertEqual(t.path, os.path.join(*p))
self.assertEqual(t.title, "00 - Empty Track.ogg")
self.assertEqual(t.artist, "Unknown Artist")
self.assertEqual(t.tracknumber , 0)
self.assertEqual(t.length, 0)
self.assertEqual(t.discnumber, 1)
self.assertEqual(t.album.album, "Unknown Album")
self.assertEqual(t.album.date, 0)
self.assertEqual(t.album.genre, "Unknown")
self.assertEqual(t.album.albumartist, "Unknown Artist")
self.assertEqual(len(track.tracklist), 0)
def test_init_discno_detect(self):
join = os.path.join
self.assertEqual(track.Track(join(test_tracks, "02 - Test {Disc 2}.ogg")).discnumber, 2)
self.assertEqual(track.Track(join(test_tracks, "03 - Test [Disk One].ogg")).discnumber, 1)
self.assertEqual(track.Track(join(test_tracks, "04 - Test (Disc Two).ogg")).discnumber, 2)
self.assertEqual(track.Track(join(test_tracks, "05 - Test - Disc Three.ogg")).discnumber, 3)
self.assertEqual(track.Track(join(test_tracks, "06 - Test;CD Four.ogg")).discnumber, 4)
self.assertEqual(track.Track(join(test_tracks, "07 - Test;CdFive.ogg")).discnumber, 5)
self.assertEqual(track.Track(join(test_tracks, "08 - Test CD 6/10.ogg")).discnumber, 6)
self.assertEqual(track.Track(join(test_tracks, "09 - Test {Disc 02}.ogg")).discnumber, 2)
self.assertEqual(track.Track(join(test_tracks, "10 - Test {Disc 20}.ogg")).discnumber, 20)
def test_track_add(self):
t = track.add(os.path.join(test_tracks, "01 - Test Track.ogg"))
self.assertIsNotNone(t)
self.assertEqual(len(track.tracklist), 1)
self.assertIn(t, track.tracklist)
self.assertIsNone(track.add(os.path.join(test_tracks, "01 - Test Track.ogg")))
self.assertEqual(len(track.tracklist), 1)
self.assertIsNone(track.add("99 - No Such Track.ogg"))
self.assertEqual(len(track.tracklist), 1)
u = track.add(os.path.join(test_tracks, "02 - Test {Disc 2}.ogg"))
self.assertIsNotNone(u)
self.assertEqual(len(track.tracklist), 2)
self.assertIn(u, track.tracklist)
if __name__ == '__main--':
unittest.main()