Ignore:
Timestamp:
04/15/06 19:54:52 (9 years ago)
Author:
xi
Message:

Major refactoring.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyyaml/trunk/tests/test_representer.py

    r133 r136  
    1313from yaml import * 
    1414 
    15 class MyConstructor(Constructor): 
     15class MyLoader(Loader): 
    1616    pass 
    17 class MyRepresenter(Representer): 
     17class MyDumper(Dumper): 
    1818    pass 
    1919 
     
    3939class MyTestClass2(MyTestClass1, YAMLObject): 
    4040 
    41     yaml_constructor = MyConstructor 
     41    yaml_loader = MyLoader 
     42    yaml_dumper = MyDumper 
    4243    yaml_tag = "!tag2" 
    4344 
     
    6869    to_yaml = classmethod(to_yaml) 
    6970 
    70 MyConstructor.add_constructor("!tag1", construct1) 
    71 MyRepresenter.add_representer(MyTestClass1, represent1) 
     71MyLoader.add_constructor("!tag1", construct1) 
     72MyDumper.add_representer(MyTestClass1, represent1) 
     73 
     74class YAMLObject1(YAMLObject): 
     75    yaml_loader = MyLoader 
     76    yaml_dumper = MyDumper 
     77    yaml_tag = '!foo' 
     78    yaml_flow_style = True 
     79 
     80    def __init__(self, my_parameter=None, my_another_parameter=None): 
     81        self.my_parameter = my_parameter 
     82        self.my_another_parameter = my_another_parameter 
     83 
     84    def __eq__(self, other): 
     85        if isinstance(other, YAMLObject1): 
     86            return self.__class__, self.__dict__ == other.__class__, other.__dict__ 
     87        else: 
     88            return False 
    7289 
    7390class TestTypeRepresenter(test_appliance.TestAppliance): 
    7491 
    7592    def _testTypes(self, test_name, data_filename, code_filename): 
    76         natives1 = eval(file(code_filename, 'rb').read()) 
    77         natives2 = None 
     93        data1 = eval(file(code_filename, 'rb').read()) 
     94        data2 = None 
    7895        output = None 
    7996        try: 
    80             output = dump(natives1, Representer=MyRepresenter) 
    81             natives2 = load(output, Constructor=MyConstructor) 
     97            output = dump(data1, Dumper=MyDumper) 
     98            data2 = load(output, Loader=MyLoader) 
    8299            try: 
    83                 self.failUnlessEqual(natives1, natives2) 
     100                self.failUnlessEqual(data1, data2) 
    84101            except AssertionError: 
    85                 if isinstance(natives1, dict): 
    86                     natives1 = natives1.items() 
    87                     natives1.sort() 
    88                     natives1 = repr(natives1) 
    89                     natives2 = natives2.items() 
    90                     natives2.sort() 
    91                     natives2 = repr(natives2) 
    92                 if natives1 != natives2: 
     102                if isinstance(data1, dict): 
     103                    data1 = data1.items() 
     104                    data1.sort() 
     105                    data1 = repr(data1) 
     106                    data2 = data2.items() 
     107                    data2.sort() 
     108                    data2 = repr(data2) 
     109                if data1 != data2: 
    93110                    raise 
    94111        except: 
     
    96113            print "OUTPUT:" 
    97114            print output 
    98             print "NATIVES1:", natives1 
    99             print "NATIVES2:", natives2 
     115            print "NATIVES1:", data1 
     116            print "NATIVES2:", data2 
    100117            raise 
    101118 
Note: See TracChangeset for help on using the changeset viewer.