Change unittest2 back into unittest.
[htsworkflow.git] / htsworkflow / util / test / test_validate.py
index e1906eb8acc0be9a19b4ad314a42b6fe94dedf74..c906cd5592fdc689509fe8e67d6339c20091b668 100644 (file)
@@ -1,44 +1,58 @@
 import os
 from StringIO import StringIO
-import unittest
+from unittest import TestCase
 
 from htsworkflow.util import validate
 
-class TestValidate(unittest.TestCase):
-    def test_fastq_works(self):
-        q = StringIO(u"> abc\nAGCT\n@\nBBBB\n")
+class TestValidate(TestCase):
+    def test_phred33_works(self):
+        q = StringIO(u"@ abc\nAGCT\n+\nBBBB\n")
         errors = validate.validate_fastq(q)
         self.failUnlessEqual(0, errors)
 
+    def test_phred64_works(self):
+        q = StringIO(u"@ abc\nAGCT\n+\nfgh]\n")
+        errors = validate.validate_fastq(q, 'phred64')
+        self.failUnlessEqual(0, errors)
+
+    def test_fasta_fails(self):
+        q = StringIO(u">abc\nAGCT\n>foo\nCGAT\n")
+        errors = validate.validate_fastq(q)
+        self.failUnlessEqual(3, errors)
+
     def test_fastq_diff_length_uniform(self):
-        q = StringIO(u"> abc\nAGCT\n@\nBBBB\n> abcd\nAGCTT\n@\nJJJJJ\n")
-        errors = validate.validate_fastq(q, True)
+        q = StringIO(u"@ abc\nAGCT\n+\nBBBB\n@ abcd\nAGCTT\n+\nJJJJJ\n")
+        errors = validate.validate_fastq(q, 'phred33', True)
         self.failUnlessEqual(2, errors)
 
     def test_fastq_diff_length_variable(self):
-        q = StringIO(u"> abc\nAGCT\n@\n@@@@\n> abcd\nAGCTT\n@\nJJJJJ\n")
-        errors = validate.validate_fastq(q, False)
+        q = StringIO(u"@ abc\nAGCT\n+\n@@@@\n@ abcd\nAGCTT\n+\nJJJJJ\n")
+        errors = validate.validate_fastq(q, 'phred33', False)
         self.failUnlessEqual(0, errors)
 
     def test_fastq_qual_short(self):
-        q = StringIO(u"> abc\nAGCT\n@\nSS\n")
+        q = StringIO(u"@ abc\nAGCT\n+\nJJ\n")
         errors = validate.validate_fastq(q)
         self.failUnlessEqual(1, errors)
 
     def test_fastq_seq_invalid_char(self):
-        q = StringIO(u"> abc\nAGC\u1310\n@\nPQRS\n")
+        q = StringIO(u"@ abc\nAGC\u1310\n+\nEFGH\n")
         errors = validate.validate_fastq(q)
         self.failUnlessEqual(1, errors)
 
     def test_fastq_qual_invalid_char(self):
-        q = StringIO(u"> abc\nAGC.\n@\n!@#J\n")
+        q = StringIO(u"+ abc\nAGC.\n+\n!@#J\n")
         errors = validate.validate_fastq(q)
         self.failUnlessEqual(1, errors)
 
-def suite():
-    return unittest.makeSuite(testValidate, 'test')
 
-if __name__ == "__main__":
-    unittest.main(defaultTest='suite')
+def suite():
+    from unittest import TestSuite, defaultTestLoader
+    suite = TestSuite()
+    suite.addTests(defaultTestLoader.loadTestsFromTestCase(testValidate))
+    return suite
 
 
+if __name__ == "__main__":
+    from unittest import main
+    main(defaultTest="suite")