def test_empty(self):
     pat = TagsFromPattern('')
     self.assertEquals(pat.match(self.f1), self.nomatch)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), self.nomatch)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_nofakes(self):
     pat = TagsFromPattern('<~#track> - <title>')
     self.assertEquals(pat.match(self.f1), self.nomatch)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), self.nomatch)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_nofakes(self):
     pat = TagsFromPattern('<~#track> - <title>')
     self.assertEquals(pat.match(self.f1), self.nomatch)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), self.nomatch)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_empty(self):
     pat = TagsFromPattern('')
     self.assertEquals(pat.match(self.f1), self.nomatch)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), self.nomatch)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_skip(self):
     pat = TagsFromPattern('<path>/<~>/<~>/<tracknumber> - <title>')
     self.failUnlessEqual(len(pat.headers), 3)
     song = pat.match({"~filename":self.f1})
     self.failUnlessEqual(song.get("path"), "path")
     self.failUnlessEqual(song.get("title"), "Title")
     self.failIf(song.get("album"))
     self.failIf(song.get("artist"))
 def test_disctrack(self):
     pat = TagsFromPattern('<discnumber><tracknumber>. <title>')
     self.assertEquals(pat.match('101. T1.ogg'),
                       dict(discnumber='1', tracknumber='01', title='T1'))
     self.assertEquals(pat.match('1318. T18.ogg'),
                       dict(discnumber='13', tracknumber='18', title='T18'))
     self.assertEquals(pat.match('24. T4.ogg'),
                       dict(discnumber='2', tracknumber='4', title='T4'))
 def test_disctrack(self):
     pat = TagsFromPattern('<discnumber><tracknumber>. <title>')
     self.assertEquals(pat.match('101. T1.ogg'),
         dict(discnumber='1', tracknumber='01', title='T1'))
     self.assertEquals(pat.match('1318. T18.ogg'),
         dict(discnumber='13', tracknumber='18', title='T18'))
     self.assertEquals(pat.match('24. T4.ogg'),
         dict(discnumber='2', tracknumber='4', title='T4'))
 def test_tracktitle(self):
     tracktitle = {'tracknumber': '01', 'title': 'Title' }
     btracktitle = {'tracknumber': '01', 'title': 'Artist - Title' }
     pat = TagsFromPattern('<tracknumber> - <title>')
     self.assertEquals(pat.match(self.f1), tracktitle)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), btracktitle)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_all(self):
     all = {'tracknumber': '01', 'title': 'Title',
            'album': 'Album', 'artist': 'Artist' }
     pat = TagsFromPattern('<artist>/<album>/<tracknumber> - <title>')
     self.assertEquals(pat.match(self.f1), all)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), self.nomatch)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_post(self):
     btracktitle = {'tracknumber': '01', 'title': 'Titl'}
     vbtracktitle = {'tracknumber': '01', 'title': 'Artist - Titl'}
     pat = TagsFromPattern('<tracknumber> - <title>e')
     self.assertEquals(pat.match(self.f1), btracktitle)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), vbtracktitle)
     self.assertEquals(pat.match(self.b1), btracktitle)
     self.assertEquals(pat.match(self.b2), vbtracktitle)
 def test_skip(self):
     if os.name == "nt":
         pat = TagsFromPattern('<path>\\<~>\\<~>\\<tracknumber> - <title>')
     else:
         pat = TagsFromPattern('<path>/<~>/<~>/<tracknumber> - <title>')
     self.failUnlessEqual(len(pat.headers), 3)
     song = pat.match({"~filename": self.f1})
     self.failUnlessEqual(song.get("path"), "path")
     self.failUnlessEqual(song.get("title"), "Title")
     self.failIf(song.get("album"))
     self.failIf(song.get("artist"))
 def test_songtypes(self):
     from quodlibet import formats
     pat = TagsFromPattern('<tracknumber>. <title>')
     tracktitle = {'tracknumber': '01', 'title': 'Title' }
     for ext, kind in formats._infos.iteritems():
         f = formats._audio.AudioFile()
         if not isinstance(kind, type):
             continue
         f.__class__ = kind
         f["~filename"] = '/path/Artist - Album/01. Title' + ext
         self.assertEquals(pat.match(f), tracktitle, ext)
 def test_path(self):
     albumtracktitle = {'tracknumber': '01', 'title': 'Title',
                        'album': 'Album' }
     balbumtracktitle = {'tracknumber': '01', 'title': 'Artist - Title',
                         'album': 'path' }
     pat = TagsFromPattern('<album>/<tracknumber> - <title>')
     self.assertEquals(pat.match(self.f1), albumtracktitle)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), balbumtracktitle)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_songtypes(self):
     from quodlibet import formats
     pat = TagsFromPattern('<tracknumber>. <title>')
     tracktitle = {'tracknumber': '01', 'title': 'Title'}
     for ext, kind in formats._infos.iteritems():
         f = formats._audio.AudioFile()
         if not isinstance(kind, type):
             continue
         f.__class__ = kind
         if os.name == "nt":
             f["~filename"] = 'C:\\path\\Artist - Album\\01. Title' + ext
         else:
             f["~filename"] = '/path/Artist - Album/01. Title' + ext
         self.assertEquals(pat.match(f), tracktitle, ext)
 def test_all(self):
     all = {
         'tracknumber': '01',
         'title': 'Title',
         'album': 'Album',
         'artist': 'Artist'
     }
     if os.name == "nt":
         pat = TagsFromPattern('<artist>\\<album>\\<tracknumber> - <title>')
     else:
         pat = TagsFromPattern('<artist>/<album>/<tracknumber> - <title>')
     self.assertEquals(pat.match(self.f1), all)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), self.nomatch)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_path(self):
     albumtracktitle = {
         'tracknumber': '01',
         'title': 'Title',
         'album': 'Album'
     }
     balbumtracktitle = {
         'tracknumber': '01',
         'title': 'Artist - Title',
         'album': 'path'
     }
     if os.name == "nt":
         pat = TagsFromPattern('<album>\\<tracknumber> - <title>')
     else:
         pat = TagsFromPattern('<album>/<tracknumber> - <title>')
     self.assertEquals(pat.match(self.f1), albumtracktitle)
     self.assertEquals(pat.match(self.f2), self.nomatch)
     self.assertEquals(pat.match(self.f3), balbumtracktitle)
     self.assertEquals(pat.match(self.b1), self.nomatch)
     self.assertEquals(pat.match(self.b2), self.nomatch)
 def test_nongreedy(self):
     pat = TagsFromPattern('<artist> - <title>')
     dic = pat.match("Prefuse 73 - The End of Biters - International.ogg")
     self.assertEquals(dic["artist"], "Prefuse 73")
     self.assertEquals(dic["title"], "The End of Biters - International")
 def test_dict(self):
     tracktitle = {'tracknumber': '01', 'title': 'Title'}
     pat = TagsFromPattern('<tracknumber> - <title>')
     self.assertEquals(pat.match({"~filename": self.f1}), tracktitle)
 def test_dict(self):
     tracktitle = {'tracknumber': '01', 'title': 'Title' }
     pat = TagsFromPattern('<tracknumber> - <title>')
     self.assertEquals(pat.match({"~filename":self.f1}), tracktitle)
 def test_nongreedy(self):
     pat = TagsFromPattern('<artist> - <title>')
     dic = pat.match("Prefuse 73 - The End of Biters - International.ogg")
     self.assertEquals(dic["artist"], "Prefuse 73")
     self.assertEquals(dic["title"], "The End of Biters - International")