test_metadata.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import unittest
  4. import sys
  5. import media.monitor.metadata as mmm
  6. class TestMetadata(unittest.TestCase):
  7. def setUp(self):
  8. self.music_folder = u'/home/rudi/music'
  9. def test_got_music_folder(self):
  10. t = os.path.exists(self.music_folder)
  11. self.assertTrue(t)
  12. if not t:
  13. print("'%s' must exist for this test to run." % self.music_folder )
  14. sys.exit(1)
  15. def test_metadata(self):
  16. full_paths = (os.path.join(self.music_folder,filename) for filename in os.listdir(self.music_folder))
  17. i = 0
  18. for full_path in full_paths:
  19. if os.path.isfile(full_path):
  20. md_full = mmm.Metadata(full_path)
  21. md = md_full.extract()
  22. if i < 3:
  23. i += 1
  24. print("Sample metadata: '%s'" % md)
  25. self.assertTrue( len( md.keys() ) > 0 )
  26. utf8 = md_full.utf8()
  27. for k,v in md.iteritems():
  28. if hasattr(utf8[k], 'decode'):
  29. self.assertEqual( utf8[k].decode('utf-8'), md[k] )
  30. else: print("Skipping '%s' because it's a directory" % full_path)
  31. def test_airtime_mutagen_dict(self):
  32. for muta,airtime in mmm.mutagen2airtime.iteritems():
  33. self.assertEqual( mmm.airtime2mutagen[airtime], muta )
  34. def test_format_length(self):
  35. # TODO : add some real tests for this function
  36. x1 = 123456
  37. print("Formatting '%s' to '%s'" % (x1, mmm.format_length(x1)))
  38. if __name__ == '__main__': unittest.main()