5fcc36205aa0d1b04614c5ab08c96421ed9fc290
[mussa.git] / py / test / TestSequence.py
1 import os
2 import sys
3 import unittest
4
5 # kinda hackish but it makes it possible to runi under ctest 
6 sys.path.append(os.getcwd())
7
8 import mussa
9
10 class TestSequence(unittest.TestCase):
11   def testSimple(self):
12     seq_text = "AGCT"
13     s = mussa.Sequence(seq_text)
14     self.failUnless(len(seq_text) == len(s))
15     self.failUnless(len(s) == s.size())
16     self.failUnless(str(s) == seq_text)
17     self.failUnless(str(s) == seq_text)
18
19   def testNames(self):
20     seq_text = "AAGGCCTT"
21     header_text = "hello"
22     species = "Goo Gooerific"
23
24     s = mussa.Sequence(seq_text)
25
26     s.header = header_text
27     s.species = species
28     self.failUnless(s.header == header_text)
29     self.failUnless(s.species == species)
30
31   def testAnnotations(self):
32     annot = mussa.annot()
33     annot.begin = 0
34     annot.end = 10
35     annot.name = "foo"
36     annot.type = "utr"
37
38     seq = mussa.Sequence("AAGGCCTTAATTGGCCTT")
39     seq.add_annotation(annot)
40
41   def notestFile(self):
42     # remove no prefix once we have sequence loading from a stream
43     seq_text = "AAGGCCTT"
44     from StringIO import StringIO
45     s = StringIO(seq_text)
46
47     seq = mussa.Sequence(s)
48
49     self.failUnless(seq == seq_text)
50
51 def suite():
52   return unittest.makeSuite(TestSequence, 'test')
53
54 if __name__ == "__main__":
55   sys.exit(unittest.main(defaultTest='suite'))