pyyaml / tests / test_recursive.py

Kirill Simonov 61ce6d0 
Kirill Simonov 988f014 

Kirill Simonov 61ce6d0 

Kirill Simonov 988f014 
Kirill Simonov 61ce6d0 
Kirill Simonov 988f014 


Kirill Simonov 61ce6d0 
Kirill Simonov 988f014 





Kirill Simonov 61ce6d0 
Kirill Simonov 988f014 
Kirill Simonov 61ce6d0 
Kirill Simonov 988f014 






























import test_appliance

from yaml import *

class AnInstance:

    def __init__(self, foo, bar):
        self.foo = foo
        self.bar = bar

    def __repr__(self):
        try:
            return "%s(foo=%r, bar=%r)" % (self.__class__.__name__,
                    self.foo, self.bar)
        except RuntimeError:
            return "%s(foo=..., bar=...)" % self.__class__.__name__

class AnInstanceWithState(AnInstance):

    def __getstate__(self):
        return {'attributes': [self.foo, self.bar]}

    def __setstate__(self, state):
        self.foo, self.bar = state['attributes']

class TestRecursive(test_appliance.TestAppliance):

    def _testRecursive(self, test_name, recursive_filename):
        exec file(recursive_filename, 'r').read()
        value1 = value
        output1 = None
        value2 = None
        output2 = None
        try:
            output1 = dump(value1)
            #print "OUTPUT %s:" % test_name
            #print output1
            value2 = load(output1)
            output2 = dump(value2)
            self.failUnlessEqual(output1, output2)
        except:
            print "VALUE1:", value1
            print "VALUE2:", value2
            print "OUTPUT1:"
            print output1
            print "OUTPUT2:"
            print output2
            raise

TestRecursive.add_tests('testRecursive', '.recursive')
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.