source: pyyaml/trunk/tests3/test_recursive.py @ 328

Revision 328, 1.2 KB checked in by xi, 5 years ago (diff)

Added basic support for Python 3 (Thanks idadesub(at)users(dot)sourceforge(dot)net).

RevLine 
[142]1
[322]2import yaml
[222]3
4class AnInstance:
[142]5
[222]6    def __init__(self, foo, bar):
7        self.foo = foo
8        self.bar = bar
[142]9
[222]10    def __repr__(self):
11        try:
12            return "%s(foo=%r, bar=%r)" % (self.__class__.__name__,
13                    self.foo, self.bar)
14        except RuntimeError:
15            return "%s(foo=..., bar=...)" % self.__class__.__name__
[142]16
[222]17class AnInstanceWithState(AnInstance):
[142]18
[222]19    def __getstate__(self):
20        return {'attributes': [self.foo, self.bar]}
21
22    def __setstate__(self, state):
23        self.foo, self.bar = state['attributes']
24
[322]25def test_recursive(recursive_filename, verbose=False):
[328]26    exec(open(recursive_filename, 'rb').read())
[322]27    value1 = value
28    output1 = None
29    value2 = None
30    output2 = None
31    try:
32        output1 = yaml.dump(value1)
33        value2 = yaml.load(output1)
34        output2 = yaml.dump(value2)
35        assert output1 == output2, (output1, output2)
36    finally:
37        if verbose:
[328]38            print("VALUE1:", value1)
39            print("VALUE2:", value2)
40            print("OUTPUT1:")
41            print(output1)
42            print("OUTPUT2:")
43            print(output2)
[222]44
[322]45test_recursive.unittest = ['.recursive']
[222]46
[322]47if __name__ == '__main__':
48    import test_appliance
49    test_appliance.run(globals())
50
Note: See TracBrowser for help on using the repository browser.