Move data folder helper to tests module
This commit is contained in:
parent
8e6df64997
commit
5e79c8a1f1
@ -1,3 +1,5 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
try: # 2.7
|
try: # 2.7
|
||||||
from unittest.case import SkipTest
|
from unittest.case import SkipTest
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@ -6,3 +8,10 @@ except ImportError:
|
|||||||
except ImportError: # Failsafe
|
except ImportError: # Failsafe
|
||||||
class SkipTest(Exception):
|
class SkipTest(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def data_folder(name):
|
||||||
|
folder = os.path.dirname(__file__)
|
||||||
|
folder = os.path.join(folder, 'data')
|
||||||
|
folder = os.path.abspath(folder)
|
||||||
|
return os.path.join(folder, name)
|
||||||
|
|
||||||
|
|||||||
@ -8,18 +8,11 @@ import urllib
|
|||||||
from mopidy.utils import parse_m3u, parse_mpd_tag_cache
|
from mopidy.utils import parse_m3u, parse_mpd_tag_cache
|
||||||
from mopidy.models import Track, Artist, Album
|
from mopidy.models import Track, Artist, Album
|
||||||
|
|
||||||
from tests import SkipTest
|
from tests import SkipTest, data_folder
|
||||||
|
|
||||||
def data(name):
|
song1_path = data_folder('song1.mp3')
|
||||||
folder = os.path.dirname(__file__)
|
song2_path = data_folder('song2.mp3')
|
||||||
folder = os.path.join(folder, 'data')
|
encoded_path = data_folder(u'æøå.mp3')
|
||||||
folder = os.path.abspath(folder)
|
|
||||||
return os.path.join(folder, name)
|
|
||||||
|
|
||||||
|
|
||||||
song1_path = data('song1.mp3')
|
|
||||||
song2_path = data('song2.mp3')
|
|
||||||
encoded_path = data(u'æøå.mp3')
|
|
||||||
song1_uri = 'file://' + urllib.pathname2url(song1_path)
|
song1_uri = 'file://' + urllib.pathname2url(song1_path)
|
||||||
song2_uri = 'file://' + urllib.pathname2url(song2_path)
|
song2_uri = 'file://' + urllib.pathname2url(song2_path)
|
||||||
encoded_uri = 'file://' + urllib.pathname2url(encoded_path.encode('utf-8'))
|
encoded_uri = 'file://' + urllib.pathname2url(encoded_path.encode('utf-8'))
|
||||||
@ -27,15 +20,15 @@ encoded_uri = 'file://' + urllib.pathname2url(encoded_path.encode('utf-8'))
|
|||||||
|
|
||||||
class M3UToUriTest(unittest.TestCase):
|
class M3UToUriTest(unittest.TestCase):
|
||||||
def test_empty_file(self):
|
def test_empty_file(self):
|
||||||
uris = parse_m3u(data('empty.m3u'))
|
uris = parse_m3u(data_folder('empty.m3u'))
|
||||||
self.assertEqual([], uris)
|
self.assertEqual([], uris)
|
||||||
|
|
||||||
def test_basic_file(self):
|
def test_basic_file(self):
|
||||||
uris = parse_m3u(data('one.m3u'))
|
uris = parse_m3u(data_folder('one.m3u'))
|
||||||
self.assertEqual([song1_uri], uris)
|
self.assertEqual([song1_uri], uris)
|
||||||
|
|
||||||
def test_file_with_comment(self):
|
def test_file_with_comment(self):
|
||||||
uris = parse_m3u(data('comment.m3u'))
|
uris = parse_m3u(data_folder('comment.m3u'))
|
||||||
self.assertEqual([song1_uri], uris)
|
self.assertEqual([song1_uri], uris)
|
||||||
|
|
||||||
def test_file_with_absolute_files(self):
|
def test_file_with_absolute_files(self):
|
||||||
@ -62,7 +55,7 @@ class M3UToUriTest(unittest.TestCase):
|
|||||||
self.assertEqual([song1_uri], uris)
|
self.assertEqual([song1_uri], uris)
|
||||||
|
|
||||||
def test_encoding_is_latin1(self):
|
def test_encoding_is_latin1(self):
|
||||||
uris = parse_m3u(data('encoding.m3u'))
|
uris = parse_m3u(data_folder('encoding.m3u'))
|
||||||
self.assertEqual([encoded_uri], uris)
|
self.assertEqual([encoded_uri], uris)
|
||||||
|
|
||||||
expected_artists = [Artist(name='name')]
|
expected_artists = [Artist(name='name')]
|
||||||
@ -70,7 +63,7 @@ expected_albums = [Album(name='albumname', artists=expected_artists, num_tracks=
|
|||||||
expected_tracks = []
|
expected_tracks = []
|
||||||
|
|
||||||
def generate_track(path):
|
def generate_track(path):
|
||||||
uri = 'file://' + urllib.pathname2url(data(path))
|
uri = 'file://' + urllib.pathname2url(data_folder(path))
|
||||||
track = Track(name='trackname', artists=expected_artists, track_no=1,
|
track = Track(name='trackname', artists=expected_artists, track_no=1,
|
||||||
album=expected_albums[0], length=4000, uri=uri)
|
album=expected_albums[0], length=4000, uri=uri)
|
||||||
expected_tracks.append(track)
|
expected_tracks.append(track)
|
||||||
@ -87,23 +80,23 @@ generate_track('subdir1/subsubdir/song9.mp3')
|
|||||||
|
|
||||||
class MPDTagCacheToTracksTest(unittest.TestCase):
|
class MPDTagCacheToTracksTest(unittest.TestCase):
|
||||||
def test_emtpy_cache(self):
|
def test_emtpy_cache(self):
|
||||||
tracks, artists, albums = parse_mpd_tag_cache(data('empty_tag_cache'),
|
tracks, artists, albums = parse_mpd_tag_cache(data_folder('empty_tag_cache'),
|
||||||
data(''))
|
data_folder(''))
|
||||||
self.assertEqual(set(), tracks)
|
self.assertEqual(set(), tracks)
|
||||||
self.assertEqual(set(), artists)
|
self.assertEqual(set(), artists)
|
||||||
self.assertEqual(set(), albums)
|
self.assertEqual(set(), albums)
|
||||||
|
|
||||||
def test_simple_cache(self):
|
def test_simple_cache(self):
|
||||||
tracks, artists, albums = parse_mpd_tag_cache(data('simple_tag_cache'),
|
tracks, artists, albums = parse_mpd_tag_cache(data_folder('simple_tag_cache'),
|
||||||
data(''))
|
data_folder(''))
|
||||||
|
|
||||||
self.assertEqual(expected_tracks[0], list(tracks)[0])
|
self.assertEqual(expected_tracks[0], list(tracks)[0])
|
||||||
self.assertEqual(set(expected_artists), artists)
|
self.assertEqual(set(expected_artists), artists)
|
||||||
self.assertEqual(set(expected_albums), albums)
|
self.assertEqual(set(expected_albums), albums)
|
||||||
|
|
||||||
def test_advanced_cache(self):
|
def test_advanced_cache(self):
|
||||||
tracks, artists, albums = parse_mpd_tag_cache(data('advanced_tag_cache'),
|
tracks, artists, albums = parse_mpd_tag_cache(data_folder('advanced_tag_cache'),
|
||||||
data(''))
|
data_folder(''))
|
||||||
|
|
||||||
self.assertEqual(set(expected_tracks), tracks)
|
self.assertEqual(set(expected_tracks), tracks)
|
||||||
self.assertEqual(set(expected_artists), artists)
|
self.assertEqual(set(expected_artists), artists)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user