2 # vim: set ts=4 sts=4 sw=4 textwidth=92 :
4 import os, sys, unittest
6 from RarslaveLogger import RarslaveLogger
7 from RarslaveLogger import RarslaveMessage
9 class rarslavetest (unittest.TestCase):
11 def assertListEquals (self, l1, l2):
15 self.assertEquals (len(l1), len(l2))
19 self.fail ("Element missing from list")
24 self.logger = RarslaveLogger ()
29 def testGetBasenameNone (self):
30 QNAME = '[something] some names.txt'
31 ANAME = '[something] some names.txt'
33 # Tests for an exension that should not be stripped
34 self.assertEquals (ANAME, get_basename (QNAME))
36 def testGetBasenameSingle (self):
37 QNAME = '[something] some names.par2'
38 ANAME = '[something] some names'
40 self.assertEquals (ANAME, get_basename (QNAME))
42 def testGetBasenameMulti (self):
43 QNAME = '[a.f.k.] The Melancholy of Haruhi Suzumiya - 13.avi.001'
44 ANAME = '[a.f.k.] The Melancholy of Haruhi Suzumiya - 13'
46 self.assertEquals (ANAME, get_basename (QNAME))
48 def testGetBasenameMulti2 (self):
49 QNAME = '[AonE-AnY]_Ah_My_Goddess_-_Sorezore_no_Tsubasa_-_13_[WS][E6380C3F].avi.vol00+01.PAR2'
50 ANAME = '[AonE-AnY]_Ah_My_Goddess_-_Sorezore_no_Tsubasa_-_13_[WS][E6380C3F]'
52 self.assertEquals (ANAME, get_basename (QNAME))
54 def testFindLikelyFilesBadDir (self):
57 self.assertRaises (ValueError, find_likely_files, "fake", DIR)
59 def testFindAllPar2Files (self):
62 self.assertRaises (ValueError, find_all_par2_files, DIR)
64 def testHasExtension1 (self):
65 FILE = 'some.file.part01.rar'
67 self.assertTrue (has_extension (FILE, 'rar'))
68 self.assertTrue (has_extension (FILE, '.rar'))
69 self.assertTrue (has_extension (FILE, 'part01.rar'))
70 self.assertTrue (has_extension (FILE, '.part01.rar'))
72 def testHasExtension2 (self):
73 FILE = 'some.file.part01.rar'
75 self.assertFalse (has_extension (FILE, 'zip'))
76 self.assertFalse (has_extension (FILE, '.zip'))
77 self.assertFalse (has_extension (FILE, '.part01'))
78 self.assertFalse (has_extension (FILE, 'part01'))
80 def testIsNewRar (self):
81 DIR = os.getcwd() + '/test_material/01/'
83 self.assertTrue (is_newrar (os.listdir (DIR)))
85 def testDeletableFiles1 (self):
86 FILES = ['test.part%d.rar' % n for n in xrange(10)]
88 self.assertListEquals (find_deleteable_files (FILES), FILES)
90 def testDeletableFiles2 (self):
91 FILESN = ['%d.mp3' % n for n in xrange(20)]
92 FILESY = ['%d.zip' % n for n in xrange(5)]
94 self.assertListEquals (find_deleteable_files (FILESN + FILESY), FILESY)
96 ### RarslaveMessage tests
100 STR2 = "Goodbye, \nCruel World"
102 self.assertEquals (STR1, RarslaveMessage (STR1, True ).__repr__())
103 self.assertEquals (STR1, RarslaveMessage (STR1, False).__repr__())
104 self.assertEquals (STR2, RarslaveMessage (STR2, True ).__repr__())
105 self.assertEquals (STR2, RarslaveMessage (STR2, False).__repr__())
107 def testisVerboseMessage (self):
109 STR2 = "Goodbye, \nCruel World"
111 self.assertTrue (RarslaveMessage (STR1, False).isVerbose())
112 self.assertTrue (RarslaveMessage (STR2, False).isVerbose())
113 self.assertFalse (RarslaveMessage (STR1, True).isVerbose())
114 self.assertFalse (RarslaveMessage (STR2, True).isVerbose())
116 ### RarslaveLogger tests
118 def testgetUniqueID (self):
121 for i in xrange(100):
122 id = self.logger.getUniqueID ()
124 self.fail ("Already generated ID was generated again")
126 generated.append (id)
128 def testisValidID (self):
129 id1 = self.logger.getUniqueID ()
130 id2 = self.logger.getUniqueID ()
132 self.assertFalse (self.logger.isValidID (-100))
133 self.assertFalse (self.logger.isValidID (1000))
135 self.assertTrue (self.logger.isValidID (id1))
136 self.assertTrue (self.logger.isValidID (id2))
139 if __name__ == '__main__':