source: pyyaml/trunk/tests/test_representer.py @ 150

Revision 150, 1.5 KB checked in by xi, 8 years ago (diff)

Prepare setup.py for release. Fix #7.

RevLine 
[133]1
2import test_appliance
[144]3from test_constructor import *
[133]4
5from yaml import *
6
[144]7class TestRepresenterTypes(test_appliance.TestAppliance):
[133]8
9    def _testTypes(self, test_name, data_filename, code_filename):
[136]10        data1 = eval(file(code_filename, 'rb').read())
11        data2 = None
[133]12        output = None
13        try:
[136]14            output = dump(data1, Dumper=MyDumper)
15            data2 = load(output, Loader=MyLoader)
[144]16            self.failUnlessEqual(type(data1), type(data2))
[133]17            try:
[136]18                self.failUnlessEqual(data1, data2)
[133]19            except AssertionError:
[136]20                if isinstance(data1, dict):
[150]21                    data1 = [(repr(key), value) for key, value in data1.items()]
[136]22                    data1.sort()
23                    data1 = repr(data1)
[150]24                    data2 = [(repr(key), value) for key, value in data2.items()]
[136]25                    data2.sort()
26                    data2 = repr(data2)
[147]27                    if data1 != data2:
28                        raise
29                elif isinstance(data1, list):
30                    self.failUnlessEqual(type(data1), type(data2))
31                    self.failUnlessEqual(len(data1), len(data2))
32                    for item1, item2 in zip(data1, data2):
33                        self.failUnlessEqual(item1, item2)
34                else:
[133]35                    raise
36        except:
37            print
38            print "OUTPUT:"
39            print output
[136]40            print "NATIVES1:", data1
41            print "NATIVES2:", data2
[133]42            raise
43
[144]44TestRepresenterTypes.add_tests('testTypes', '.data', '.code')
[133]45
Note: See TracBrowser for help on using the repository browser.