Changeset 54
- Timestamp:
- 02/20/06 15:46:35 (7 years ago)
- Location:
- branches/pyyaml3000
- Files:
-
- 3 edited
-
lib/yaml/resolver.py (modified) (3 diffs)
-
tests/test_appliance.py (modified) (1 diff)
-
tests/test_structure.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pyyaml3000/lib/yaml/resolver.py
r53 r54 39 39 elif isinstance(node, SequenceNode): 40 40 self.resolve_sequence(path, node) 41 for index in len(node.value):41 for index in range(len(node.value)): 42 42 self.resolve_node(path+[node, index], node.value[index]) 43 43 elif isinstance(node, MappingNode): … … 47 47 self.resolve_node(path+[node, key], value) 48 48 49 def resolve_scalar(self, node):49 def resolve_scalar(self, path, node): 50 50 if node.tag is None: 51 51 node.tag = self.detect_scalar(node.value) … … 53 53 node.tag = self.DEFAULT_SCALAR_TAG 54 54 55 def resolve_sequence(self, node):55 def resolve_sequence(self, path, node): 56 56 if node.tag is None or node.tag == u'!': 57 57 node.tag = self.DEFAULT_SEQUENCE_TAG 58 58 59 def resolve_mapping(self, node):59 def resolve_mapping(self, path, node): 60 60 if node.tag is None or node.tag == u'!': 61 61 node.tag = self.DEFAULT_MAPPING_TAG -
branches/pyyaml3000/tests/test_appliance.py
r51 r54 299 299 return self.events 300 300 301 def get(self): 302 return self.events.pop(0) 303 304 def check(self, *choices): 305 for choice in choices: 306 if isinstance(self.events[0], choice): 307 return True 308 return False 309 310 def peek(self): 311 return self.events[0] 312 -
branches/pyyaml3000/tests/test_structure.py
r53 r54 5 5 from yaml.scanner import Scanner 6 6 from yaml.parser import * 7 from yaml.composer import * 8 from yaml.resolver import * 9 from yaml.nodes import * 7 10 8 11 class TestStructure(test_appliance.TestAppliance): … … 97 100 pass 98 101 102 TestParser.add_tests('testParser', '.data', '.canonical') 99 103 100 TestParser.add_tests('testParser', '.data', '.canonical') 104 class TestResolver(test_appliance.TestAppliance): 105 106 def _testResolver(self, test_name, data_filename, canonical_filename): 107 nodes1 = None 108 nodes2 = None 109 try: 110 resolver1 = Resolver(Composer(Parser(Scanner(Reader(file(data_filename, 'rb')))))) 111 nodes1 = list(iter(resolver1)) 112 canonical = test_appliance.CanonicalParser(file(canonical_filename, 'rb').read()) 113 canonical.parse() 114 resolver2 = Resolver(Composer(canonical)) 115 nodes2 = list(iter(resolver2)) 116 self.failUnlessEqual(len(nodes1), len(nodes2)) 117 for node1, node2 in zip(nodes1, nodes2): 118 self._compare(node1, node2) 119 except: 120 print 121 print "DATA1:" 122 print file(data_filename, 'rb').read() 123 print "DATA2:" 124 print file(canonical_filename, 'rb').read() 125 print "NODES1:", nodes1 126 print "NODES2:", nodes2 127 raise 128 129 def _compare(self, node1, node2): 130 self.failUnlessEqual(node1.__class__, node2.__class__) 131 if isinstance(node1, ScalarNode): 132 #self.failUnlessEqual(node1.tag, node2.tag) 133 self.failUnlessEqual(node1.value, node2.value) 134 elif isinstance(node1, SequenceNode): 135 self.failUnlessEqual(len(node1.value), len(node2.value)) 136 for item1, item2 in zip(node1.value, node2.value): 137 self._compare(item1, item2) 138 elif isinstance(node1, MappingNode): 139 self.failUnlessEqual(len(node1.value), len(node2.value)) 140 for (key1, value1), (key2, value2) in zip(node1.value, node2.value): 141 self._compare(key1, key2) 142 self._compare(value1, value2) 143 144 TestResolver.add_tests('testResolver', '.data', '.canonical') 101 145 102 146 class TestParserOnCanonical(test_appliance.TestAppliance):
Note: See TracChangeset
for help on using the changeset viewer.
