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_structure.py

    r130 r136  
    1010        node2 = eval(file(structure_filename, 'rb').read()) 
    1111        try: 
    12             parser = Parser(Scanner(Reader(file(data_filename, 'rb')))) 
     12            loader = Loader(file(data_filename, 'rb')) 
    1313            node1 = [] 
    14             while not parser.check(StreamEndEvent): 
    15                 if not parser.check(StreamStartEvent, DocumentStartEvent, DocumentEndEvent): 
    16                     node1.append(self._convert(parser)) 
     14            while not loader.check_event(StreamEndEvent): 
     15                if not loader.check_event(StreamStartEvent, DocumentStartEvent, DocumentEndEvent): 
     16                    node1.append(self._convert(loader)) 
    1717                else: 
    18                     parser.get() 
    19             parser.get() 
     18                    loader.get_event() 
     19            loader.get_event() 
    2020            if len(node1) == 1: 
    2121                node1 = node1[0] 
     
    2929            raise 
    3030 
    31     def _convert(self, parser): 
    32         if parser.check(ScalarEvent): 
    33             event = parser.get() 
     31    def _convert(self, loader): 
     32        if loader.check_event(ScalarEvent): 
     33            event = loader.get_event() 
    3434            if event.tag or event.anchor or event.value: 
    3535                return True 
    3636            else: 
    3737                return None 
    38         elif parser.check(SequenceStartEvent): 
    39             parser.get() 
     38        elif loader.check_event(SequenceStartEvent): 
     39            loader.get_event() 
    4040            sequence = [] 
    41             while not parser.check(SequenceEndEvent): 
    42                 sequence.append(self._convert(parser)) 
    43             parser.get() 
     41            while not loader.check_event(SequenceEndEvent): 
     42                sequence.append(self._convert(loader)) 
     43            loader.get_event() 
    4444            return sequence 
    45         elif parser.check(MappingStartEvent): 
    46             parser.get() 
     45        elif loader.check_event(MappingStartEvent): 
     46            loader.get_event() 
    4747            mapping = [] 
    48             while not parser.check(MappingEndEvent): 
    49                 key = self._convert(parser) 
    50                 value = self._convert(parser) 
     48            while not loader.check_event(MappingEndEvent): 
     49                key = self._convert(loader) 
     50                value = self._convert(loader) 
    5151                mapping.append((key, value)) 
    52             parser.get() 
     52            loader.get_event() 
    5353            return mapping 
    54         elif parser.check(AliasEvent): 
    55             parser.get() 
     54        elif loader.check_event(AliasEvent): 
     55            loader.get_event() 
    5656            return '*' 
    5757        else: 
    58             parser.get() 
     58            loader.get_event() 
    5959            return '?' 
    6060 
     
    6767        events2 = None 
    6868        try: 
    69             parser = Parser(Scanner(Reader(file(data_filename, 'rb')))) 
    70             events1 = list(iter(parser)) 
    71             canonical = test_appliance.CanonicalParser(file(canonical_filename, 'rb').read()) 
    72             events2 = canonical.parse() 
     69            events1 = list(parse(file(data_filename, 'rb'))) 
     70            events2 = list(test_appliance.canonical_parse(file(canonical_filename, 'rb'))) 
    7371            self._compare(events1, events2) 
    7472        except: 
     
    106104        nodes2 = None 
    107105        try: 
    108             resolver1 = Resolver(Composer(Parser(Scanner(Reader(file(data_filename, 'rb')))))) 
    109             nodes1 = list(iter(resolver1)) 
    110             canonical = test_appliance.CanonicalParser(file(canonical_filename, 'rb').read()) 
    111             canonical.parse() 
    112             resolver2 = Resolver(Composer(canonical)) 
    113             nodes2 = list(iter(resolver2)) 
     106            nodes1 = list(compose_all(file(data_filename, 'rb'))) 
     107            nodes2 = list(test_appliance.canonical_compose_all(file(canonical_filename, 'rb'))) 
    114108            self.failUnlessEqual(len(nodes1), len(nodes2)) 
    115109            for node1, node2 in zip(nodes1, nodes2): 
     
    148142TestResolver.add_tests('testResolver', '.data', '.canonical') 
    149143 
    150 class MyConstructor(Constructor): 
     144class MyConstructor: 
    151145 
    152146    def construct_sequence(self, node): 
     
    158152        return pairs 
    159153 
    160 MyConstructor.add_constructor(None, MyConstructor.construct_scalar) 
     154    def construct_undefined(self, node): 
     155        return self.construct_scalar(node) 
     156 
     157class MyLoader(MyConstructor, Loader): 
     158    pass 
     159MyLoader.add_constructor(None, MyLoader.construct_undefined) 
     160 
     161class MyCanonicalLoader(MyConstructor, test_appliance.CanonicalLoader): 
     162    pass 
     163MyCanonicalLoader.add_constructor(None, MyCanonicalLoader.construct_undefined) 
    161164 
    162165class TestConstructor(test_appliance.TestAppliance): 
    163166 
    164167    def _testConstructor(self, test_name, data_filename, canonical_filename): 
    165         natives1 = None 
    166         natives2 = None 
    167         try: 
    168             constructor1 = MyConstructor(Resolver(Composer(Parser(Scanner(Reader(file(data_filename, 'rb'))))))) 
    169             natives1 = list(iter(constructor1)) 
    170             canonical = test_appliance.CanonicalParser(file(canonical_filename, 'rb').read()) 
    171             canonical.parse() 
    172             constructor2 = MyConstructor(Resolver(Composer(canonical))) 
    173             natives2 = list(iter(constructor2)) 
    174             self.failUnlessEqual(natives1, natives2) 
     168        data1 = None 
     169        data2 = None 
     170        try: 
     171            data1 = list(load_all(file(data_filename, 'rb'), Loader=MyLoader)) 
     172            data2 = list(load_all(file(canonical_filename, 'rb'), Loader=MyCanonicalLoader)) 
     173            self.failUnlessEqual(data1, data2) 
    175174        except: 
    176175            print 
     
    179178            print "DATA2:" 
    180179            print file(canonical_filename, 'rb').read() 
    181             print "NATIVES1:", natives1 
    182             print "NATIVES2:", natives2 
     180            print "NATIVES1:", data1 
     181            print "NATIVES2:", data2 
    183182            raise 
    184183 
     
    191190        events2 = None 
    192191        try: 
    193             parser = Parser(Scanner(Reader(file(canonical_filename, 'rb')))) 
    194             events1 = list(iter(parser)) 
    195             canonical = test_appliance.CanonicalParser(file(canonical_filename, 'rb').read()) 
    196             events2 = canonical.parse() 
     192            events1 = list(parse(file(canonical_filename, 'rb'))) 
     193            events2 = list(test_appliance.canonical_parse(file(canonical_filename, 'rb'))) 
    197194            self._compare(events1, events2) 
    198195        except: 
Note: See TracChangeset for help on using the changeset viewer.