source: pyyaml/trunk/tests/test_recursive.py @ 322

Revision 322, 1.2 KB checked in by xi, 6 years ago (diff)

Refactored the test suite; updated include and library paths in setup.cfg.

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):
26    exec open(recursive_filename, 'rb').read()
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:
[222]38            print "VALUE1:", value1
39            print "VALUE2:", value2
40            print "OUTPUT1:"
41            print output1
42            print "OUTPUT2:"
43            print output2
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.