remove annot class in favor of SeqSpan
[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     seq = mussa.Sequence("AAGGCCTTAATTGGCCTT")
33     seq.add_annotation("foo", "utr", 0, 10)
34
35   def notestFile(self):
36     # remove no prefix once we have sequence loading from a stream
37     seq_text = "AAGGCCTT"
38     from StringIO import StringIO
39     s = StringIO(seq_text)
40
41     seq = mussa.Sequence(s)
42
43     self.failUnless(seq == seq_text)
44
45 def suite():
46   return unittest.makeSuite(TestSequence, 'test')
47
48 if __name__ == "__main__":
49   sys.exit(unittest.main(defaultTest='suite'))