Change unittest2 back into unittest.
[htsworkflow.git] / htsworkflow / automation / test / test_runner.py
1 from unittest import TestCase
2
3 import os
4 from htsworkflow.automation.solexa import is_runfolder
5
6 def extract_runfolder_path(watchdir, event):
7   runfolder_path = watchdir
8   path = event.path
9   if not path.startswith(watchdir):
10     return None
11
12   fragments = path[len(watchdir):].split(os.path.sep)
13   for f in fragments:
14     runfolder_path = os.path.join(runfolder_path, f)
15     if is_runfolder(f):
16       return runfolder_path
17   return None
18
19
20 class Event(object):
21   def __init__(self, path=None, name=None):
22     self.path = path
23     self.name = name
24
25
26 class testRunner(TestCase):
27     def test_extract_runfolder(self):
28         watchdir = os.path.join('root', 'server', 'mount')
29         runfolder = os.path.join(watchdir, '080909_HWI-EAS229_0052_1234ABCD')
30         ipar = os.path.join(runfolder, 'Data', 'IPAR_1.01')
31         other = os.path.join(watchdir, 'other')
32
33         event = Event( path=runfolder )
34         self.failUnlessEqual(extract_runfolder_path(watchdir, event), runfolder)
35         
36         event = Event( path=ipar )
37         self.failUnlessEqual(extract_runfolder_path(watchdir, event), runfolder)
38
39         event = Event( path=other)
40         self.failUnlessEqual(extract_runfolder_path(watchdir, event), None )
41
42
43 def suite():
44     from unittest import TestSuite, defaultTestLoader
45     suite = TestSuite()
46     suite.addTests(defaultTestLoader.loadTestsFromTestCase(testRunner))
47     return suite
48
49
50 if __name__ == "__main__":
51     from unittest import main
52     main(defaultTest="suite")