Add basic scanner translator and test
This commit is contained in:
parent
1551723dd7
commit
b76ae84af2
@ -6,10 +6,38 @@ pygst.require('0.10')
|
||||
import gst
|
||||
|
||||
from os.path import abspath
|
||||
import datetime
|
||||
import sys
|
||||
import threading
|
||||
|
||||
from mopidy.utils.path import path_to_uri, find_files
|
||||
from mopidy.models import Track, Artist, Album
|
||||
|
||||
def translator(data):
|
||||
album = Album(
|
||||
name=data['album'],
|
||||
num_tracks=data['track-count'],
|
||||
)
|
||||
|
||||
artist = Artist(
|
||||
name=data['artist'],
|
||||
)
|
||||
|
||||
date = datetime.date(
|
||||
data['date'].year,
|
||||
data['date'].month,
|
||||
data['date'].day,
|
||||
)
|
||||
|
||||
return Track(
|
||||
uri=data['uri'],
|
||||
name=data['title'],
|
||||
album=album,
|
||||
artists=[artist],
|
||||
date=date,
|
||||
track_no=data['track-number'],
|
||||
)
|
||||
|
||||
|
||||
class Scanner(object):
|
||||
def __init__(self, folder, data_callback, error_callback=None):
|
||||
|
||||
@ -1,9 +1,45 @@
|
||||
import unittest
|
||||
from datetime import date
|
||||
|
||||
from mopidy.scanner import Scanner
|
||||
from mopidy.scanner import Scanner, translator
|
||||
from mopidy.models import Track, Artist, Album
|
||||
|
||||
from tests import data_folder
|
||||
|
||||
class FakeGstDate(object):
|
||||
def __init__(self, year, month, day):
|
||||
self.year = year
|
||||
self.month = month
|
||||
self.day = day
|
||||
|
||||
class TranslatorTest(unittest.TestCase):
|
||||
def test_basic_data(self):
|
||||
data = {
|
||||
'uri': 'uri',
|
||||
'album': u'albumname',
|
||||
'track-number': 1,
|
||||
'artist': u'name',
|
||||
'title': u'trackname',
|
||||
'track-count': 2,
|
||||
'date': FakeGstDate(2006, 1, 1,),
|
||||
'container-format': u'ID3 tag',
|
||||
# length etc?
|
||||
}
|
||||
|
||||
expected = Track(
|
||||
uri='uri',
|
||||
name='trackname',
|
||||
album=Album(name='albumname', num_tracks=2),
|
||||
artists=[Artist(name='name')],
|
||||
date=date(2006, 1, 1),
|
||||
track_no=1,
|
||||
)
|
||||
|
||||
actual = translator(data)
|
||||
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
|
||||
class ScannerTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.errors = {}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user