1457f9effbb44e764f119184a572cd48d232e940
[htsworkflow.git] / htsworkflow / automation / test / test_runner.py
1 import unittest
2
3
4 import os
5 from htsworkflow.automation.solexa import is_runfolder
6
7 def extract_runfolder_path(watchdir, event):
8   runfolder_path = watchdir
9   path = event.path
10   if not path.startswith(watchdir):
11     return None
12
13   fragments = path[len(watchdir):].split(os.path.sep)
14   for f in fragments:
15     runfolder_path = os.path.join(runfolder_path, f)
16     if is_runfolder(f):
17       return runfolder_path
18   return None
19
20 class Event(object):
21   def __init__(self, path=None, name=None):
22     self.path = path
23     self.name = name
24
25 class testRunner(unittest.TestCase):
26
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 def suite():
43     return unittest.makeSuite(testRunner,'test')
44
45 if __name__ == "__main__":
46     unittest.main(defaultTest="suite")