[RARSLAVE] Add PAR2 Parser
[rarslave2.git] / rarslave-test.py
index 21aadb8..e2733ba 100644 (file)
@@ -3,13 +3,28 @@
 
 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'
@@ -38,7 +53,7 @@ class rarslavetest (unittest.TestCase):
 
        def testFindLikelyFilesBadDir (self):
                DIR = '/fake/dir'
-               
+
                self.assertRaises (ValueError, find_likely_files, "fake", DIR)
 
        def testFindAllPar2Files (self):
@@ -46,6 +61,80 @@ class rarslavetest (unittest.TestCase):
 
                self.assertRaises (ValueError, find_all_par2_files, DIR)
 
+       def testHasExtension1 (self):
+               FILE = 'some.file.part01.rar'
+
+               self.assertTrue (has_extension (FILE, 'rar'))
+               self.assertTrue (has_extension (FILE, '.rar'))
+               self.assertTrue (has_extension (FILE, 'part01.rar'))
+               self.assertTrue (has_extension (FILE, '.part01.rar'))
+
+       def testHasExtension2 (self):
+               FILE = 'some.file.part01.rar'
+
+               self.assertFalse (has_extension (FILE, 'zip'))
+               self.assertFalse (has_extension (FILE, '.zip'))
+               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 ()