123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import unittest
- import sys
- import odml
- try:
- from StringIO import StringIO
- except ImportError:
- from io import StringIO
- class TestTypes(unittest.TestCase):
- def setUp(self):
- # Capture the output printed by the functions to STDOUT, and use it for
- # testing purposes.
- self.captured_stdout = StringIO()
- sys.stdout = self.captured_stdout
- self.doc = odml.Document(author='Rave', version='1.0')
- s1 = odml.Section(name='Cell')
- p1 = odml.Property(name='Type', values='Rechargeable')
- s1.append(p1)
- s2 = odml.Section(name='Electrolyte')
- p2 = odml.Property(name='Composition', values='Ni-Cd')
- s2.append(p2)
- s1.append(s2)
- s3 = odml.Section(name='Electrode')
- p3 = odml.Property(name='Material', values='Nickel')
- p4 = odml.Property(name='Models', values=['AA', 'AAA'])
- s3.append(p3)
- s3.append(p4)
- s2.append(s3)
- self.doc.append(s1)
- def test_dump_doc(self):
- # This test dumps the whole document and checks it word by word.
- # If possible, maybe some better way of testing this ?
- odml.tools.dumper.dumpDoc(self.doc)
- output = [x.strip() for x in self.captured_stdout.getvalue().split('\n') if x]
- expected_output = []
- expected_output.append("*Cell ()")
- expected_output.append(":Type (values=Rechargeable, dtype='string')")
- expected_output.append("*Electrolyte ()")
- expected_output.append(":Composition (values=Ni-Cd, dtype='string')")
- expected_output.append("*Electrode ()")
- expected_output.append(":Material (values=Nickel, dtype='string')")
- expected_output.append(":Models (values=[AA,AAA], dtype='string')")
- self.assertEqual(len(output), len(expected_output))
- for i in range(len(output)):
- self.assertEqual(output[i], expected_output[i])
- # Discard the document output from stdout stream
- self.captured_stdout.seek(0)
- self.captured_stdout.truncate(0)
|