cc-4232: fixed some tests

This commit is contained in:
Rudi Grinberg 2012-08-17 15:08:11 -04:00
parent 99437147dc
commit 1c865fc3f1
3 changed files with 15 additions and 15 deletions

View File

@ -121,10 +121,10 @@ 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)
try : fpath = fpath.decode("utf-8")
except : pass
try : full_mutagen = mutagen.File(fpath, easy=True)
except Exception : raise BadSongFile(fpath)
self.path = fpath
# TODO : Simplify the way all of these rules are handled right not it's
# extremely unclear and needs to be refactored.
@ -162,6 +162,8 @@ class Metadata(Loggable):
# Finally, we "normalize" all the metadata here:
self.__metadata = mmp.normalized_metadata(self.__metadata, fpath)
# Now we must load the md5:
# TODO : perhaps we shouldn't hard code how many bytes we're reading
# from the file?
self.__metadata['MDATA_KEY_MD5'] = mmp.file_md5(fpath,max_length=100)
def is_recorded(self):

View File

@ -163,11 +163,13 @@ def apply_rules_dict(d, rules):
"""
Consumes a dictionary of rules that maps some keys to lambdas which it
applies to every matching element in d and returns a new dictionary with
the rules applied
the rules applied. If a rule returns none then it's not applied
"""
new_d = copy.deepcopy(d)
for k, rule in rules.iteritems():
if k in d: new_d[k] = rule(d[k])
if k in d:
new_val = rule(d[k])
if new_val is not None: new_d[k] = new_val
return new_d
def default_to_f(dictionary, keys, default, condition):
@ -183,10 +185,6 @@ def default_to(dictionary, keys, default):
"""
cnd = lambda dictionary, key: key not in dictionary
return default_to_f(dictionary, keys, default, cnd)
#new_d = copy.deepcopy(dictionary)
#for k in keys:
#if not (k in new_d): new_d[k] = default
#return new_d
def remove_whitespace(dictionary):
"""
@ -205,18 +203,18 @@ def remove_whitespace(dictionary):
def parse_int(s):
"""
Tries very hard to get some sort of integer result from s. Defaults to 0
when it failes
when it fails
>>> parse_int("123")
'123'
>>> parse_int("123saf")
'123'
>>> parse_int("asdf")
''
nothing
"""
if s.isdigit(): return s
else:
try : return str(reduce(op.add, takewhile(lambda x: x.isdigit(), s)))
except: return ''
except: return None
def normalized_metadata(md, original_path):
"""

View File

@ -48,7 +48,7 @@ class TestMMP(unittest.TestCase):
real_path1 = \
u'/home/rudi/throwaway/fucking_around/watch/unknown/unknown/ACDC_-_Back_In_Black-sample-64kbps-64kbps.ogg'
self.assertTrue( 'unknown' in og, True )
self.assertEqual( og, real_path1 )
self.assertEqual( og, real_path1 ) # TODO : fix this failure
# for recorded it should be something like this
# ./recorded/2012/07/2012-07-09-17-55-00-Untitled Show-256kbps.ogg
@ -70,6 +70,6 @@ class TestMMP(unittest.TestCase):
def test_parse_int(self):
self.assertEqual( mmp.parse_int("123"), "123" )
self.assertEqual( mmp.parse_int("123asf"), "123" )
self.assertEqual( mmp.parse_int("asdf"), "" )
self.assertEqual( mmp.parse_int("asdf"), None )
if __name__ == '__main__': unittest.main()