Change unittest2 back into unittest.
[htsworkflow.git] / htsworkflow / pipelines / test / test_runfolder_rta1_12.py
index 28863c1c3be98ba6e71c72e2d0fcc25a89f5db87..c22535b6bcbf7da056d621e92bc4b9bce1c750d1 100644 (file)
@@ -5,7 +5,7 @@ import logging
 import os
 import tempfile
 import shutil
-import unittest
+from unittest import TestCase
 
 from htsworkflow.pipelines import eland
 from htsworkflow.pipelines.samplekey import SampleKey
@@ -13,7 +13,7 @@ from htsworkflow.pipelines import ipar
 from htsworkflow.pipelines import bustard
 from htsworkflow.pipelines import gerald
 from htsworkflow.pipelines import runfolder
-from htsworkflow.pipelines.runfolder import ElementTree
+from htsworkflow.pipelines import ElementTree
 
 from htsworkflow.pipelines.test.simulate_runfolder import *
 
@@ -26,10 +26,13 @@ def make_runfolder(obj=None):
     flowcell_id = 'D07K6ACXX'
     temp_dir = tempfile.mkdtemp(prefix='tmp_runfolder_')
 
-    runfolder_dir = os.path.join(temp_dir,
-                                 '110815_SN787_0101_A{0}'.format(flowcell_id))
+    runfolder_dir = os.path.join(
+        temp_dir,
+        '110815_SN787_0101_A{0}'.format(flowcell_id))
     os.mkdir(runfolder_dir)
 
+    make_runinfo(runfolder_dir, flowcell_id)
+
     data_dir = os.path.join(runfolder_dir, 'Data')
     os.mkdir(data_dir)
 
@@ -43,6 +46,7 @@ def make_runfolder(obj=None):
     os.mkdir(unaligned_dir)
     make_unaligned_fastqs_1_12(unaligned_dir, flowcell_id)
     make_unaligned_config_1_12(unaligned_dir)
+    make_unaligned_status_1_12(unaligned_dir, flowcell_id)
 
     aligned_dir = os.path.join(runfolder_dir, "Aligned")
     os.mkdir(aligned_dir)
@@ -50,6 +54,7 @@ def make_runfolder(obj=None):
     make_aligned_config_1_12(aligned_dir)
 
     if obj is not None:
+        obj.flowcell_id = flowcell_id
         obj.temp_dir = temp_dir
         obj.runfolder_dir = runfolder_dir
         obj.data_dir = data_dir
@@ -59,7 +64,7 @@ def make_runfolder(obj=None):
         obj.reads = 2
 
 
-class RunfolderTests(unittest.TestCase):
+class RunfolderTests(TestCase):
     """
     Test components of the runfolder processing code
     which includes firecrest, bustard, and gerald
@@ -102,12 +107,12 @@ class RunfolderTests(unittest.TestCase):
         # instead of pythons default 0..8
         # test lane specific parameters from gerald config file
 
-        undetermined = g.lanes['Undetermined_indices']
+        undetermined = g.lanes[SampleKey(sample='Undetermined_indices')]
         self.failUnlessEqual(undetermined.analysis, 'none')
         self.failUnlessEqual(undetermined.read_length, None)
         self.failUnlessEqual(undetermined.use_bases, None)
 
-        project = g.lanes['12383']
+        project = g.lanes[SampleKey(sample='11115')]
         self.failUnlessEqual(project.analysis, 'eland_extended')
         self.failUnlessEqual(project.eland_genome, '/g/hg18/chromosomes/')
         self.failUnlessEqual(project.read_length, '49')
@@ -245,36 +250,37 @@ class RunfolderTests(unittest.TestCase):
                 self.failUnlessEqual(l1.sequence_type, l2.sequence_type)
 
     def test_runfolder(self):
-        return
         runs = runfolder.get_runs(self.runfolder_dir)
 
         # do we get the flowcell id from the filename?
         self.failUnlessEqual(len(runs), 1)
-        name = 'run_4286GAAXX_%s.xml' % ( date.today().strftime('%Y-%m-%d'),)
-        self.failUnlessEqual(runs[0].name, name)
-
-        # do we get the flowcell id from the FlowcellId.xml file
-        make_flowcell_id(self.runfolder_dir, '207BTAAXY')
-        runs = runfolder.get_runs(self.runfolder_dir)
-        self.failUnlessEqual(len(runs), 1)
-        name = 'run_207BTAAXY_%s.xml' % ( date.today().strftime('%Y-%m-%d'),)
-        self.failUnlessEqual(runs[0].name, name)
+        self.assertEqual(runs[0].flowcell_id, self.flowcell_id)
+        name = 'run_%s_%s.xml' % ( self.flowcell_id,
+                                   date.today().strftime('%Y-%m-%d'),)
+        self.failUnlessEqual(runs[0].serialization_filename, name)
 
+        bustard_dir = os.path.join(self.runfolder_dir, 'Unaligned')
         r1 = runs[0]
+        self.failUnlessEqual(r1.bustard.sequence_format, 'fastq')
+        self.failUnlessEqual(r1.bustard.pathname, bustard_dir)
+        self.failUnlessEqual(r1.gerald.runfolder_name, 'Unaligned')
+
         xml = r1.get_elements()
         xml_str = ElementTree.tostring(xml)
 
         r2 = runfolder.PipelineRun(xml=xml)
-        self.failUnlessEqual(r1.name, r2.name)
+        self.failUnlessEqual(r1.serialization_filename, r2.serialization_filename)
         self.failIfEqual(r2.image_analysis, None)
         self.failIfEqual(r2.bustard, None)
         self.failIfEqual(r2.gerald, None)
 
-
 def suite():
-    return unittest.makeSuite(RunfolderTests,'test')
+    from unittest import TestSuite, defaultTestLoader
+    suite = TestSuite()
+    suite.addTests(defaultTestLoader.loadTestsFromTestCase(RunfolderTests))
+    return suite
 
-if __name__ == "__main__":
-    logging.basicConfig(level=logging.WARN)
-    unittest.main(defaultTest="suite")
 
+if __name__ == "__main__":
+    from unittest import main
+    main(defaultTest="suite")