Ignore:
Timestamp:
12/27/08 14:09:03 (6 years ago)
Author:
xi
Message:

Fixed test errors for LibYAML bindings; added a test on emitting nodes in all possible styles.

File:
1 edited

Legend:

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

    r137 r312  
    3535                self.failUnlessEqual(event.value, new_event.value) 
    3636 
     37    def _testEmitterStyles(self, test_name, canonical_filename, data_filename): 
     38        for filename in [canonical_filename, data_filename]: 
     39            events = list(parse(file(filename, 'rb'))) 
     40            for flow_style in [False, True]: 
     41                for style in ['|', '>', '"', '\'', '']: 
     42                    styled_events = [] 
     43                    for event in events: 
     44                        if isinstance(event, ScalarEvent): 
     45                            event = ScalarEvent(event.anchor, event.tag, 
     46                                    event.implicit, event.value, style=style) 
     47                        elif isinstance(event, SequenceStartEvent): 
     48                            event = SequenceStartEvent(event.anchor, event.tag, 
     49                                    event.implicit, flow_style=flow_style) 
     50                        elif isinstance(event, MappingStartEvent): 
     51                            event = MappingStartEvent(event.anchor, event.tag, 
     52                                    event.implicit, flow_style=flow_style) 
     53                        styled_events.append(event) 
     54                    stream = StringIO.StringIO() 
     55                    emit(styled_events, stream) 
     56                    data = stream.getvalue() 
     57                    #print data 
     58                    new_events = list(parse(data)) 
     59                    for event, new_event in zip(events, new_events): 
     60                        self.failUnlessEqual(event.__class__, new_event.__class__) 
     61                        if isinstance(event, NodeEvent): 
     62                            self.failUnlessEqual(event.anchor, new_event.anchor) 
     63                        if isinstance(event, CollectionStartEvent): 
     64                            self.failUnlessEqual(event.tag, new_event.tag) 
     65                        if isinstance(event, ScalarEvent): 
     66                            #self.failUnlessEqual(event.implicit, new_event.implicit) 
     67                            if True not in event.implicit+new_event.implicit: 
     68                                self.failUnlessEqual(event.tag, new_event.tag) 
     69                            self.failUnlessEqual(event.value, new_event.value) 
     70 
     71 
    3772    def _dump(self, filename, events, canonical): 
    3873        print "="*30 
     
    4681TestEmitter.add_tests('testEmitterOnCanonicalNormally', '.canonical') 
    4782TestEmitter.add_tests('testEmitterOnCanonicalCanonically', '.canonical') 
     83TestEmitter.add_tests('testEmitterStyles', '.canonical', '.data') 
    4884 
    4985class EventsLoader(Loader): 
Note: See TracChangeset for help on using the changeset viewer.