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

Major refactoring.

File:
1 edited

Legend:

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

    r59 r136  
    1212from yaml import * 
    1313 
    14 class MyConstructor(Constructor): 
     14class MyLoader(Loader): 
    1515    pass 
    1616 
     
    2929    return MyTestClass1(**mapping) 
    3030 
    31 MyConstructor.add_constructor("!tag1", construct1) 
     31MyLoader.add_constructor("!tag1", construct1) 
    3232 
    3333class MyTestClass2(MyTestClass1, YAMLObject): 
    3434 
    35     yaml_constructor = MyConstructor 
     35    yaml_loader = MyLoader 
    3636    yaml_tag = "!tag2" 
    3737 
     
    5454    from_yaml = classmethod(from_yaml) 
    5555 
     56class YAMLObject1(YAMLObject): 
     57    yaml_loader = MyLoader 
     58    yaml_tag = '!foo' 
     59 
     60    def __init__(self, my_parameter=None, my_another_parameter=None): 
     61        self.my_parameter = my_parameter 
     62        self.my_another_parameter = my_another_parameter 
     63 
     64    def __eq__(self, other): 
     65        if isinstance(other, YAMLObject1): 
     66            return self.__class__, self.__dict__ == other.__class__, other.__dict__ 
     67        else: 
     68            return False 
     69 
    5670class TestTypes(test_appliance.TestAppliance): 
    5771 
    5872    def _testTypes(self, test_name, data_filename, code_filename): 
    59         natives1 = None 
    60         natives2 = None 
     73        data1 = None 
     74        data2 = None 
    6175        try: 
    62             constructor1 = MyConstructor(Resolver(Composer(Parser(Scanner(Reader(file(data_filename, 'rb'))))))) 
    63             natives1 = list(iter(constructor1)) 
    64             if len(natives1) == 1: 
    65                 natives1 = natives1[0] 
    66             natives2 = eval(file(code_filename, 'rb').read()) 
     76            data1 = list(load_all(file(data_filename, 'rb'), Loader=MyLoader)) 
     77            if len(data1) == 1: 
     78                data1 = data1[0] 
     79            data2 = eval(file(code_filename, 'rb').read()) 
    6780            try: 
    68                 self.failUnlessEqual(natives1, natives2) 
     81                self.failUnlessEqual(data1, data2) 
    6982            except AssertionError: 
    70                 if isinstance(natives1, dict): 
    71                     natives1 = natives1.items() 
    72                     natives1.sort() 
    73                     natives1 = repr(natives1) 
    74                     natives2 = natives2.items() 
    75                     natives2.sort() 
    76                     natives2 = repr(natives2) 
    77                 if natives1 != natives2: 
     83                if isinstance(data1, dict): 
     84                    data1 = data1.items() 
     85                    data1.sort() 
     86                    data1 = repr(data1) 
     87                    data2 = data2.items() 
     88                    data2.sort() 
     89                    data2 = repr(data2) 
     90                if data1 != data2: 
    7891                    raise 
    7992        except: 
     
    8396            print "CODE:" 
    8497            print file(code_filename, 'rb').read() 
    85             print "NATIVES1:", natives1 
    86             print "NATIVES2:", natives2 
     98            print "NATIVES1:", data1 
     99            print "NATIVES2:", data2 
    87100            raise 
    88101 
Note: See TracChangeset for help on using the changeset viewer.