Initial port to python3
[htsworkflow.git] / htsworkflow / pipelines / test / test_eland.py
index 688d00ef8fe988d3e9b65ad8b1150316405af342..b18a0f78aa3a9edaa6e366bf062c48ec1f151960 100644 (file)
@@ -1,13 +1,13 @@
 #!/usr/bin/env python
 """More direct synthetic test cases for the eland output file processing
 """
-from StringIO import StringIO
-import unittest
+from io import StringIO
+from unittest import TestCase
 
 from htsworkflow.pipelines.eland import ELAND, ElandLane, ElandMatches, \
      SampleKey, MatchCodes, MappedReads
 
-class MatchCodeTests(unittest.TestCase):
+class MatchCodeTests(TestCase):
     def test_initializer(self):
         self.assertRaises(ValueError, MatchCodes, {'foo':'bar'})
         self.assertRaises(ValueError, MatchCodes, 3)
@@ -19,9 +19,9 @@ class MatchCodeTests(unittest.TestCase):
                        'U0':0, 'U1':0, 'U2':0,
                        'R0':0, 'R1':0, 'R2':0,
                       }
-        self.assertEqual(mc.keys(), match_codes.keys())
-        self.assertEqual(mc.items(), match_codes.items())
-        self.assertEqual(mc.values(), match_codes.values())
+        self.assertEqual(list(mc.keys()), list(match_codes.keys()))
+        self.assertEqual(list(mc.items()), list(match_codes.items()))
+        self.assertEqual(list(mc.values()), list(match_codes.values()))
         self.assertRaises(KeyError, mc.__getitem__, 'foo')
 
     def test_addition(self):
@@ -38,7 +38,7 @@ class MatchCodeTests(unittest.TestCase):
         self.assertEqual(mc1['U0'], 100)
 
 
-class TestMappedReads(unittest.TestCase):
+class TestMappedReads(TestCase):
     def test_initializer(self):
         mr1 = MappedReads()
         self.assertEqual(len(mr1), 0)
@@ -53,7 +53,7 @@ class TestMappedReads(unittest.TestCase):
         mr1['chr9'] = 7
         self.assertEqual(list(mr1.keys()), ['chr9'])
         self.assertEqual(mr1['chr9'], 7)
-        self.assertEqual(mr1.items(), [('chr9', 7)])
+        self.assertEqual(list(mr1.items()), [('chr9', 7)])
         del mr1['chr9']
         self.assertEqual(len(mr1), 0)
 
@@ -73,11 +73,11 @@ class TestMappedReads(unittest.TestCase):
         mr3['Lambda3'] = 2
         self.assertEqual(mr3['Lambda3'], 2)
 
-class ElandTests(unittest.TestCase):
+class ElandTests(TestCase):
     """Test specific Eland modules
     """
     def compare_match_array(self, current, expected):
-        for key in expected.keys():
+        for key in list(expected.keys()):
             self.assertEqual(current[key], expected[key],
                  "Key %s: %s != %s" % (key,current[key],expected[key]))
 
@@ -238,13 +238,12 @@ class ElandTests(unittest.TestCase):
         e.results[sl3] = 'Lane3'
         e.results[sl1] = 'Lane1'
 
-        e_list = e.values()
-        print e.items()
+        e_list = list(e.values())
         self.assertEqual(e_list[0], 'Lane1')
         self.assertEqual(e_list[1], 'Lane3')
         self.assertEqual(e_list[2], 'Lane5')
 
-class TestElandMatches(unittest.TestCase):
+class TestElandMatches(TestCase):
     def test_eland_replacing(self):
         key = SampleKey(1, 1, 's')
         e = ELAND()
@@ -254,13 +253,13 @@ class TestElandMatches(unittest.TestCase):
         self.assertEqual(len(em[key]), 1)
         filename = iter(em[key]).next().filename
         self.assertEqual(filename, 's_1_sequence.txt')
-        self.assertEqual(em.keys(), [key])
+        self.assertEqual(list(em.keys()), [key])
         em.add('s_1_eland_result.txt')
         self.assertEqual(len(em), 1)
         self.assertEqual(len(em[key]), 1)
         filename = iter(em[key]).next().filename
         self.assertEqual(filename, 's_1_eland_result.txt')
-        self.assertEqual(em.keys(), [key])
+        self.assertEqual(list(em.keys()), [key])
 
     def test_parts(self):
         key11111 = SampleKey(1, 1, '11111')
@@ -276,5 +275,16 @@ class TestElandMatches(unittest.TestCase):
         self.assertEqual(len(em[key11111]), 3)
         self.assertEqual(len(em[key11112]), 2)
 
+def suite():
+    from unittest import TestSuite, defaultTestLoader
+    suite = TestSuite()
+    suite.addTests(defaultTestLoader.loadTestsFromTestCase(MatchCodeTests))
+    suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestMappedReads))
+    suite.addTests(defaultTestLoader.loadTestsFromTestCase(ElandTests))
+    suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestElandMatches))
+    return suite
+
+
 if __name__ == "__main__":
-    unittest.main()
+    from unittest import main
+    main(defaultTest="suite")