From b76ae84af273413b2022f7bb7908fb33f149c3e6 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Tue, 26 Oct 2010 23:13:45 +0200 Subject: [PATCH] Add basic scanner translator and test --- mopidy/scanner.py | 28 ++++++++++++++++++++++++++++ tests/scanner.py | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/mopidy/scanner.py b/mopidy/scanner.py index 914f431e..288c8fd1 100644 --- a/mopidy/scanner.py +++ b/mopidy/scanner.py @@ -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): diff --git a/tests/scanner.py b/tests/scanner.py index 091e8846..a30ca9de 100644 --- a/tests/scanner.py +++ b/tests/scanner.py @@ -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 = {}