source: trunk/tests/test_dumper.py @ 19

Revision 19, 2.0 KB checked in by xi, 9 years ago (diff)

Add generic (and mostly incorrect) Dumper class.

Line 
1
2import unittest
3import syck
4import StringIO
5import test_emitter
6
7EXAMPLE = {
8    'foo': 'bar',
9    'sequence': ['alpha', 'beta', 'gamma'],
10    'mapping': {'a': 'alpha', 'b': 'beta', 'c': 'gamma'},
11}
12
13SIMPLE_EXAMPLE = [
14    'Mark McGwire',
15    'Sammy Sosa',
16    'Ken Griffey',
17]
18
19class TestOutput(unittest.TestCase):
20
21    def testStringOutput(self):
22        source = syck.dump(EXAMPLE)
23        object = syck.load(source)
24        self.assertEqual(object, EXAMPLE)
25
26    def testFileOutput(self):
27        output = StringIO.StringIO()
28        syck.dump(EXAMPLE, output)
29        output.seek(0)
30        object = syck.load(output)
31        self.assertEqual(object, EXAMPLE)
32
33    def testNonsenseOutput(self):
34        self.assertRaises(AttributeError, lambda: syck.dump(EXAMPLE, 'output'))
35
36class TestDocuments(unittest.TestCase):
37
38    def _get_examples(self):
39        yield EXAMPLE
40        yield SIMPLE_EXAMPLE
41        yield EXAMPLE
42
43    def testStringOutput(self):
44        source = syck.dump_documents(self._get_examples())
45        documents = syck.load_documents(source)
46        self.assertEqual(list(documents), list(self._get_examples()))
47       
48    def testFileOutput(self):
49        output = StringIO.StringIO()
50        syck.dump_documents(self._get_examples(), output)
51        output.seek(0)
52        documents = syck.load_documents(output)
53        self.assertEqual(list(documents), list(self._get_examples()))
54
55class TestEmitter(unittest.TestCase):
56
57    def _get_examples(self):
58        yield test_emitter.EXAMPLE
59        yield test_emitter.EXAMPLE
60
61    def testStringDocument(self):
62        source = syck.emit(test_emitter.EXAMPLE)
63        node = syck.parse(source)
64        self.assertEqual(test_emitter.strip(test_emitter.EXAMPLE),
65                test_emitter.strip(node))
66
67    def testFileDocument(self):
68        output = StringIO.StringIO()
69        syck.emit_documents(self._get_examples(), output)
70        output.seek(0)
71        nodes = syck.parse_documents(output)
72        self.assertEqual(map(test_emitter.strip, self._get_examples()),
73                map(test_emitter.strip, nodes))
74
Note: See TracBrowser for help on using the repository browser.