cc-4105: Forcing unicode on paths. Added tests for metadata (unicode related)
This commit is contained in:
parent
5d875c5020
commit
349c6f61f6
|
@ -92,6 +92,9 @@ def truncate_to_length(item, length):
|
|||
|
||||
class Metadata(Loggable):
|
||||
def __init__(self, fpath):
|
||||
# Forcing the unicode through
|
||||
try: fpath = fpath.decode("utf-8")
|
||||
except: pass
|
||||
try: full_mutagen = mutagen.File(fpath, easy=True)
|
||||
except Exception: raise BadSongFile(fpath)
|
||||
self.path = fpath
|
||||
|
|
|
@ -83,7 +83,7 @@ def no_extension_basename(path):
|
|||
>>> no_extension_basename('blah.ml')
|
||||
'blah'
|
||||
"""
|
||||
base = os.path.basename(path)
|
||||
base = unicode(os.path.basename(path))
|
||||
if extension(base) == "": return base
|
||||
else: return base.split(".")[-2]
|
||||
|
||||
|
@ -154,7 +154,7 @@ def normalized_metadata(md, original_path):
|
|||
hour,minute,second,name = md['MDATA_KEY_TITLE'].split("-",4)
|
||||
# We assume that MDATA_KEY_YEAR is always given for airtime recorded
|
||||
# shows
|
||||
new_md['MDATA_KEY_TITLE'] = '%s-%s-%s:%s:%s' % \
|
||||
new_md['MDATA_KEY_TITLE'] = u'%s-%s-%s:%s:%s' % \
|
||||
(name, new_md['MDATA_KEY_YEAR'], hour, minute, second)
|
||||
# IMPORTANT: in the original code. MDATA_KEY_FILEPATH would also
|
||||
# be set to the original path of the file for airtime recorded shows
|
||||
|
|
|
@ -6,7 +6,7 @@ from media.monitor.metadata import Metadata
|
|||
|
||||
class TestMetadata(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.music_folder = '/home/rudi/music'
|
||||
self.music_folder = u'/home/rudi/music'
|
||||
|
||||
def test_got_music_folder(self):
|
||||
t = os.path.exists(self.music_folder)
|
||||
|
@ -20,13 +20,18 @@ class TestMetadata(unittest.TestCase):
|
|||
i = 0
|
||||
for full_path in full_paths:
|
||||
if os.path.isfile(full_path):
|
||||
md = Metadata(full_path).extract()
|
||||
md_full = Metadata(full_path)
|
||||
md = md_full.extract()
|
||||
if i < 3:
|
||||
i += 1
|
||||
print("Sample metadata: '%s'" % md)
|
||||
self.assertTrue( len( md.keys() ) > 0 )
|
||||
self.assertTrue( 'MDATA_KEY_MD5' in md )
|
||||
utf8 = md_full.utf8()
|
||||
for k,v in md.iteritems():
|
||||
if hasattr(utf8[k], 'decode'):
|
||||
self.assertEqual( utf8[k].decode('utf-8'), md[k] )
|
||||
else:
|
||||
print("Skipping '%s'" % full_path)
|
||||
print("Skipping '%s' because it's a directory" % full_path)
|
||||
|
||||
if __name__ == '__main__': unittest.main()
|
||||
|
|
Loading…
Reference in New Issue