1 from unittest2 import TestCase
2 from htsworkflow.submission.fastqname import FastqName
4 class TestFastqName(TestCase):
5 def test_init_empty(self):
7 self.assertEqual(fq.is_valid, False)
9 def test_init_single_filename(self):
10 fq = FastqName(filename="12345_AABBCCDDXX_c100_l1.fastq")
11 self.assertEqual(fq.lib_id, "12345")
12 self.assertEqual(fq['lib_id'], "12345")
13 self.assertEqual(fq.flowcell, "AABBCCDDXX")
14 self.assertEqual(fq['flowcell'], "AABBCCDDXX")
15 self.assertEqual(fq.cycle, "100")
16 self.assertEqual(fq['cycle'], "100")
17 self.assertEqual(fq.lane, "1")
18 self.assertEqual(fq['lane'], "1")
19 self.assertEqual(fq.is_paired, False)
21 def test_init_single_filename(self):
22 fq = FastqName(filename="12345_AABBCCDDXX_c100_l1_r2.fastq")
23 self.assertEqual(fq.lib_id, "12345")
24 self.assertEqual(fq['lib_id'], "12345")
25 self.assertEqual(fq.flowcell, "AABBCCDDXX")
26 self.assertEqual(fq['flowcell'], "AABBCCDDXX")
27 self.assertEqual(fq.cycle, "100")
28 self.assertEqual(fq['cycle'], "100")
29 self.assertEqual(fq.lane, "1")
30 self.assertEqual(fq['lane'], "1")
31 self.assertEqual(fq.read, "2")
32 self.assertEqual(fq['read'], "2")
33 self.assertEqual(fq.is_paired, True)
35 def test_init_bad_filename(self):
36 attribs = {'filename': 'asdf.bam'}
37 self.assertRaises(ValueError, FastqName, **attribs)
39 def test_init_single_attributes(self):
40 fq = FastqName(lib_id="12345", flowcell="AABBCCDDXX",
41 cycle = "100", lane="1")
42 self.assertEqual(fq.is_valid, True)
43 self.assertEqual(fq.lib_id, "12345")
44 self.assertEqual(fq['lib_id'], "12345")
45 self.assertEqual(fq.flowcell, "AABBCCDDXX")
46 self.assertEqual(fq['flowcell'], "AABBCCDDXX")
47 self.assertEqual(fq.cycle, "100")
48 self.assertEqual(fq['cycle'], "100")
49 self.assertEqual(fq.lane, "1")
50 self.assertEqual(fq['lane'], "1")
51 self.assertEqual(fq.is_paired, False)
52 self.assertEqual(fq.filename, "12345_AABBCCDDXX_c100_l1.fastq")
54 def test_init_single_attributes_set_single(self):
55 fq = FastqName(lib_id="12345", flowcell="AABBCCDDXX",
56 cycle = "100", lane="1", is_paired=False)
57 self.assertEqual(fq.is_valid, True)
58 self.assertEqual(fq.is_paired, False)
60 def test_init_single_attributes_set_paired(self):
61 fq = FastqName(lib_id="12345", flowcell="AABBCCDDXX",
62 cycle = "100", lane="1", is_paired=True)
63 self.assertEqual(fq.is_valid, False)
64 self.assertEqual(fq.is_paired, True)
66 def test_init_paired_attributes(self):
67 fq = FastqName(lib_id="12345", flowcell="AABBCCDDXX",
68 cycle = "100", lane="1", read="2")
69 self.assertEqual(fq.is_valid, True)
70 self.assertEqual(fq.lib_id, "12345")
71 self.assertEqual(fq['lib_id'], "12345")
72 self.assertEqual(fq.flowcell, "AABBCCDDXX")
73 self.assertEqual(fq['flowcell'], "AABBCCDDXX")
74 self.assertEqual(fq.cycle, "100")
75 self.assertEqual(fq['cycle'], "100")
76 self.assertEqual(fq.lane, "1")
77 self.assertEqual(fq['lane'], "1")
78 self.assertEqual(fq.read, "2")
79 self.assertEqual(fq['read'], "2")
80 self.assertEqual(fq.is_paired, True)
81 self.assertEqual(fq.filename, "12345_AABBCCDDXX_c100_l1_r2.fastq")
83 def test_init_paired_attributes_set_single(self):
84 fq = FastqName(lib_id="12345", flowcell="AABBCCDDXX",
85 cycle = "100", lane="1", read="2", is_paired=False)
86 self.assertEqual(fq.is_valid, True)
87 self.assertEqual(fq.is_paired, False)
89 def test_init_paired_attributes_set_paired(self):
90 fq = FastqName(lib_id="12345", flowcell="AABBCCDDXX",
91 cycle = "100", lane="1", read="2", is_paired=True)
92 self.assertEqual(fq.is_valid, True)
93 self.assertEqual(fq.is_paired, True)
95 def test_init_insufficient_attributes(self):
96 attribs = dict(lib_id="12345", flowcell="AABBCCDDXX")
97 fq = FastqName(**attribs)
98 self.assertEqual(fq.is_valid, False)
102 from unittest2 import TestSuite, defaultTestLoader
104 suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestFastqName))
107 if __name__ == "__main__":
108 from unittest2 import main
109 main(defaultTest='suite')