1
from tests import TestCase, add
3
from quodlibet.qltk.renamefiles import SpacesToUnderscores, StripWindowsIncompat
4
from quodlibet.qltk.renamefiles import StripDiacriticals, StripNonASCII
6
class TFilter(TestCase):
7
def setUp(self): self.c = self.Kind()
8
def tearDown(self): self.c.destroy()
10
v = self.c.filter("", u"")
11
self.failUnlessEqual(v, "")
12
self.failUnless(isinstance(v, unicode))
14
self.failUnlessEqual(self.c.filter("", u"safe"), "safe")
16
class TSpacesToUnderscores(TFilter):
17
Kind = SpacesToUnderscores
19
self.failUnlessEqual(self.c.filter("", "foo bar "), "foo_bar_")
20
add(TSpacesToUnderscores)
22
class TStripWindowsIncompat(TFilter):
23
Kind = StripWindowsIncompat
25
self.failUnlessEqual(self.c.filter("", 'foo\\:*?;"<>|'), "foo_________")
27
def test_ends_with_dots_or_spaces(self):
28
self.failUnlessEqual(self.c.filter("", 'foo. . '), "foo. ._")
29
self.failUnlessEqual(self.c.filter("", 'foo. /bar .'), "foo._/bar _")
30
add(TStripWindowsIncompat)
32
class TStripDiacriticals(TFilter):
33
Kind = StripDiacriticals
35
self.failUnlessEqual(self.c.filter("", u"\u00c1 test"), "A test")
36
add(TStripDiacriticals)
38
class TStripNonASCII(TFilter):
42
self.c.filter("", u"foo \u00c1 \u1234"), "foo _ _")