8d336fbc8f8ff293c6e666af8e955862e119056e
[htsworkflow.git] / htsworkflow / util / test / test_ethelp.py
1 from __future__ import print_function, unicode_literals
2
3 import os
4 from unittest import TestCase
5
6 try:
7   from xml.etree import ElementTree
8 except ImportError as e:
9   from elementtree import ElementTree
10
11 from htsworkflow.util.ethelp import indent, flatten
12
13 class testETHelper(TestCase):
14     def setUp(self):
15         self.foo = '<foo><bar>asdf</bar><br/></foo>'
16         self.foo_tree = ElementTree.fromstring(self.foo)
17
18     def test_indent(self):
19         flat_foo = ElementTree.tostring(self.foo_tree)
20         self.failUnlessEqual(len(flat_foo.split('\n')), 1)
21
22         indent(self.foo_tree)
23         pretty_foo = ElementTree.tostring(self.foo_tree)
24         self.failUnlessEqual(len(pretty_foo.split('\n')), 5)
25
26     def test_flatten(self):
27         self.failUnless(flatten(self.foo_tree), 'asdf')
28
29 def suite():
30     from unittest import TestSuite, defaultTestLoader
31     suite = TestSuite()
32     suite.addTests(defaultTestLoader.loadTestsFromTestCase(testETHelper))
33     return suite
34
35
36 if __name__ == "__main__":
37     from unittest import main
38     main(defaultTest="suite")