37494466e497e6b62dcb6d5ca281448cd4c38c7b
[htsworkflow.git] / htsworkflow / submission / test / test_daf.py
1 import unittest
2
3 from htsworkflow.submission import daf
4
5 test_daf = """# Lab and general info
6 grant             Hardison
7 lab               Caltech-m
8 dataType          ChipSeq 
9 variables         cell, antibody,sex,age,strain,control
10 compositeSuffix   CaltechHistone
11 assembly          mm9
12 dafVersion        2.0
13 validationSettings validateFiles.bam:mismatches=2,bamPercent=99.9;validateFiles.fastq:quick=1000
14
15 # Track/view definition
16 view             Peaks
17 longLabelPrefix  Caltech Histone Peaks
18 type             narrowPeak
19 hasReplicates    yes
20 required         no
21
22 view             Signal
23 longLabelPrefix  Caltech Histone Signal
24 type             bigWig
25 hasReplicates    yes
26 required         no
27 """
28
29 class TestDAF(unittest.TestCase):
30     def test_parse(self):
31
32         parsed = daf.fromstring(test_daf)
33         
34         self.failUnlessEqual(parsed['assembly'], 'mm9')
35         self.failUnlessEqual(parsed['grant'], 'Hardison')
36         self.failUnlessEqual(len(parsed['variables']), 6)
37         self.failUnlessEqual(len(parsed['views']), 2)
38         self.failUnlessEqual(len(parsed['views']['Peaks']), 5)
39         self.failUnlessEqual(len(parsed['views']['Signal']), 5)
40         signal = parsed['views']['Signal']
41         self.failUnlessEqual(signal['required'], False)
42         self.failUnlessEqual(signal['longLabelPrefix'],
43                              'Caltech Histone Signal')
44
45     def test_rdf(self):
46         try:
47             import RDF
48
49             parsed = daf.fromstring(test_daf)
50             #mem = RDF.Storage(storage_name='hashes',
51             #                  options_string='hash-type="memory"'),
52             mem = RDF.MemoryStorage()
53             model = RDF.Model(mem)
54             
55             daf.add_to_model(model, parsed)
56
57             writer = RDF.Serializer(name='turtle')
58             print writer.serialize_model_to_string(model)
59             
60         except ImportError, e:
61             print "Skipped test_rdf"
62
63 def suite():
64     return unittest.makeSuite(TestDAF, 'test')
65
66 if __name__ == "__main__":
67     unittest.main(defaultTest='suite')