Initial port to python3
[htsworkflow.git] / htsworkflow / pipelines / test / test_runfolder_rta1_12.py
index 81f72632f8b6ca2c27880bc705983a26199d7fc9..00a3de5734093278ff0ee0c839c0e24a151364ec 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 *
 
@@ -46,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)
@@ -63,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
@@ -97,8 +98,8 @@ class RunfolderTests(unittest.TestCase):
 
         self.failUnlessEqual(g.software, 'CASAVA')
         self.failUnlessEqual(g.version, '1.8.1')
-        self.failUnlessEqual(len(g.lanes), len(g.lanes.keys()))
-        self.failUnlessEqual(len(g.lanes), len(g.lanes.items()))
+        self.failUnlessEqual(len(g.lanes), len(list(g.lanes.keys())))
+        self.failUnlessEqual(len(g.lanes), len(list(g.lanes.items())))
 
         # list of genomes, matches what was defined up in
         # make_gerald_config.
@@ -140,11 +141,11 @@ class RunfolderTests(unittest.TestCase):
         self.failUnlessEqual(g.software, g2.software)
         self.failUnlessEqual(g.version, g2.version)
         self.failUnlessEqual(g.date, g2.date)
-        self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys()))
-        self.failUnlessEqual(len(g.lanes.items()), len(g2.lanes.items()))
+        self.failUnlessEqual(len(list(g.lanes.keys())), len(list(g2.lanes.keys())))
+        self.failUnlessEqual(len(list(g.lanes.items())), len(list(g2.lanes.items())))
 
         # test lane specific parameters from gerald config file
-        for i in g.lanes.keys():
+        for i in list(g.lanes.keys()):
             g_lane = g.lanes[i]
             g2_lane = g2.lanes[i]
             self.failUnlessEqual(g_lane.analysis, g2_lane.analysis)
@@ -170,13 +171,13 @@ class RunfolderTests(unittest.TestCase):
                 if isinstance(g_results, eland.ElandLane):
                   self.failUnlessEqual(len(g_results.mapped_reads),
                                        len(g2_results.mapped_reads))
-                  for k in g_results.mapped_reads.keys():
+                  for k in list(g_results.mapped_reads.keys()):
                       self.failUnlessEqual(g_results.mapped_reads[k],
                                            g2_results.mapped_reads[k])
 
                   self.failUnlessEqual(len(g_results.match_codes),
                                        len(g2_results.match_codes))
-                  for k in g_results.match_codes.keys():
+                  for k in list(g_results.match_codes.keys()):
                       self.failUnlessEqual(g_results.match_codes[k],
                                            g2_results.match_codes[k])
 
@@ -196,7 +197,7 @@ class RunfolderTests(unittest.TestCase):
 
         eland_container = gerald.eland(self.gerald_dir, genome_maps=genome_maps)
 
-        for lane in eland_container.values():
+        for lane in list(eland_container.values()):
             # I added sequence lanes to the last 2 lanes of this test case
             if lane.sample_name == '11113':
                 self.assertEqual(lane.reads, 24)
@@ -236,13 +237,13 @@ class RunfolderTests(unittest.TestCase):
             if isinstance(l1, eland.ElandLane):
               self.failUnlessEqual(len(l1.mapped_reads), len(l2.mapped_reads))
               self.failUnlessEqual(len(l1.mapped_reads), 1)
-              for k in l1.mapped_reads.keys():
+              for k in list(l1.mapped_reads.keys()):
                   self.failUnlessEqual(l1.mapped_reads[k],
                                        l2.mapped_reads[k])
 
               self.failUnlessEqual(len(l1.match_codes), 9)
               self.failUnlessEqual(len(l1.match_codes), len(l2.match_codes))
-              for k in l1.match_codes.keys():
+              for k in list(l1.match_codes.keys()):
                   self.failUnlessEqual(l1.match_codes[k],
                                        l2.match_codes[k])
             elif isinstance(l1, eland.SequenceLane):
@@ -256,23 +257,30 @@ class RunfolderTests(unittest.TestCase):
         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].name, name)
+        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")