import os, sys, unittest
from rarslave import *
+from RarslaveLogger import RarslaveLogger
+from RarslaveLogger import RarslaveMessage
class rarslavetest (unittest.TestCase):
+
+ def assertListEquals (self, l1, l2):
+ if l1 is l2:
+ return True
+
+ self.assertEquals (len(l1), len(l2))
+
+ for e in l1:
+ if e not in l2:
+ self.fail ("Element missing from list")
+
+ return True
+
def setUp (self):
- pass
+ self.logger = RarslaveLogger ()
def tearDown (self):
- pass
+ self.logger = None
def testGetBasenameNone (self):
QNAME = '[something] some names.txt'
def testFindLikelyFilesBadDir (self):
DIR = '/fake/dir'
-
+
self.assertRaises (ValueError, find_likely_files, "fake", DIR)
def testFindAllPar2Files (self):
self.assertFalse (has_extension (FILE, '.part01'))
self.assertFalse (has_extension (FILE, 'part01'))
+ def testIsNewRar (self):
+ DIR = os.getcwd() + '/test_material/01/'
+
+ self.assertTrue (is_newrar (os.listdir (DIR)))
+
+ def testDeletableFiles1 (self):
+ FILES = ['test.part%d.rar' % n for n in xrange(10)]
+
+ self.assertListEquals (find_deleteable_files (FILES), FILES)
+
+ def testDeletableFiles2 (self):
+ FILESN = ['%d.mp3' % n for n in xrange(20)]
+ FILESY = ['%d.zip' % n for n in xrange(5)]
+
+ self.assertListEquals (find_deleteable_files (FILESN + FILESY), FILESY)
+
+ ### RarslaveMessage tests
+
+ def testRepr (self):
+ STR1 = "Hello World"
+ STR2 = "Goodbye, \nCruel World"
+
+ self.assertEquals (STR1, RarslaveMessage (STR1, True ).__repr__())
+ self.assertEquals (STR1, RarslaveMessage (STR1, False).__repr__())
+ self.assertEquals (STR2, RarslaveMessage (STR2, True ).__repr__())
+ self.assertEquals (STR2, RarslaveMessage (STR2, False).__repr__())
+
+ def testisVerboseMessage (self):
+ STR1 = "Hello World"
+ STR2 = "Goodbye, \nCruel World"
+
+ self.assertTrue (RarslaveMessage (STR1, False).isVerbose())
+ self.assertTrue (RarslaveMessage (STR2, False).isVerbose())
+ self.assertFalse (RarslaveMessage (STR1, True).isVerbose())
+ self.assertFalse (RarslaveMessage (STR2, True).isVerbose())
+
+ ### RarslaveLogger tests
+
+ def testgetUniqueID (self):
+ generated = []
+
+ for i in xrange(100):
+ id = self.logger.getUniqueID ()
+ if id in generated:
+ self.fail ("Already generated ID was generated again")
+
+ generated.append (id)
+
+ def testisValidID (self):
+ id1 = self.logger.getUniqueID ()
+ id2 = self.logger.getUniqueID ()
+
+ self.assertFalse (self.logger.isValidID (-100))
+ self.assertFalse (self.logger.isValidID (1000))
+
+ self.assertTrue (self.logger.isValidID (id1))
+ self.assertTrue (self.logger.isValidID (id2))
+
if __name__ == '__main__':
unittest.main ()