Source

pyyaml / tests / test_representer.py

Full commit
Kirill Simonov 98cc99c 

Kirill Simonov 5a069ae 
Kirill Simonov 98cc99c 


Kirill Simonov 5a069ae 
Kirill Simonov 98cc99c 
Kirill Simonov 6c7c12b 



Kirill Simonov 6932ece 

Kirill Simonov 98cc99c 

Kirill Simonov 6c7c12b 
Kirill Simonov 6932ece 
Kirill Simonov 5a069ae 
Kirill Simonov 98cc99c 
Kirill Simonov 6932ece 
Kirill Simonov 98cc99c 
Kirill Simonov 6932ece 
Kirill Simonov 0b7044e 
Kirill Simonov 6932ece 

Kirill Simonov 0b7044e 
Kirill Simonov 6932ece 

Kirill Simonov a188d5e 







Kirill Simonov 98cc99c 




Kirill Simonov 6932ece 

Kirill Simonov 98cc99c 

Kirill Simonov 5a069ae 
Kirill Simonov 6c7c12b 
Kirill Simonov 98cc99c 

import test_appliance
from test_constructor import *

from yaml import *

class TestRepresenterTypes(test_appliance.TestAppliance):

    def _testTypesUnicode(self, test_name, data_filename, code_filename):
        return self._testTypes(test_name, data_filename, code_filename, allow_unicode=True)

    def _testTypes(self, test_name, data_filename, code_filename, allow_unicode=False):
        data1 = eval(file(code_filename, 'rb').read())
        data2 = None
        output = None
        try:
            output = dump(data1, Dumper=MyDumper, allow_unicode=allow_unicode)
            data2 = load(output, Loader=MyLoader)
            self.failUnlessEqual(type(data1), type(data2))
            try:
                self.failUnlessEqual(data1, data2)
            except AssertionError:
                if isinstance(data1, dict):
                    data1 = [(repr(key), value) for key, value in data1.items()]
                    data1.sort()
                    data1 = repr(data1)
                    data2 = [(repr(key), value) for key, value in data2.items()]
                    data2.sort()
                    data2 = repr(data2)
                    if data1 != data2:
                        raise
                elif isinstance(data1, list):
                    self.failUnlessEqual(type(data1), type(data2))
                    self.failUnlessEqual(len(data1), len(data2))
                    for item1, item2 in zip(data1, data2):
                        self.failUnlessEqual(item1, item2)
                else:
                    raise
        except:
            print
            print "OUTPUT:"
            print output
            print "NATIVES1:", data1
            print "NATIVES2:", data2
            raise

TestRepresenterTypes.add_tests('testTypes', '.data', '.code')
TestRepresenterTypes.add_tests('testTypesUnicode', '.data', '.code')