Add basic tests for scanner

This commit is contained in:
Thomas Adamcik 2010-10-26 00:13:50 +02:00
parent efc60a943b
commit 02bfad2fe4
2 changed files with 49 additions and 3 deletions

View File

@ -29,14 +29,15 @@ class Scanner(object):
def process_tags(self, bus, message):
data = message.parse_tag()
self.data_callback(dict([(k, data[k]) for k in data.keys()]))
uri = self.uribin.get_property('uri')
self.data_callback(uri, dict([(k, data[k]) for k in data.keys()]))
self.next_uri()
def process_error(self, bus, message):
if self.error_callback:
uri = self.uribin.get_property('uri')
error = message.parse_error()
self.error_callback(uri, *error)
errors = message.parse_error()
self.error_callback(uri, errors)
self.next_uri()
def next_uri(self):

45
tests/scanner.py Normal file
View File

@ -0,0 +1,45 @@
import unittest
from mopidy.scanner import Scanner
from tests import data_folder
class ScannerTest(unittest.TestCase):
def setUp(self):
self.errors = {}
self.data = {}
def scan(self, path):
scanner = Scanner(data_folder(path),
self.data_callback, self.error_callback)
scanner.start()
def data_callback(self, uri, data):
uri = uri.lstrip('file://')
uri = uri.lstrip(data_folder(''))
self.data[uri] = data
def error_callback(self, uri, errors):
uri = uri.lstrip('file://')
uri = uri.lstrip(data_folder(''))
self.errors[uri] = errors
def test_data_is_set(self):
self.scan('blank.mp3')
self.assert_(self.data)
def test_errors_is_not_set(self):
self.scan('blank.mp3')
self.assert_(not self.errors)
def test_artist_is_set(self):
self.scan('blank.mp3')
self.assertEqual(self.data['blank.mp3']['artist'], 'artist')
def test_album_is_set(self):
self.scan('blank.mp3')
self.assertEqual(self.data['blank.mp3']['album'], 'album')
def test_track_is_set(self):
self.scan('blank.mp3')
self.assertEqual(self.data['blank.mp3']['title'], 'title')