Ignore:
Timestamp:
02/14/06 19:31:51 (9 years ago)
Author:
xi
Message:

Scanner is mostly completed. Need to write alias, tag, and scalar scanners.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/pyyaml3000/tests/test_tokens.py

    r39 r43  
    22import test_appliance 
    33 
    4 from yaml.scanner import Scanner 
     4from yaml.scanner import * 
    55 
    66class TestTokens(test_appliance.TestAppliance): 
     
    2626 
    2727    replaces = { 
    28         'DIRECTIVE': '%', 
    29         'DOCUMENT_START': '---', 
    30         'DOCUMENT_END': '...', 
    31         'ALIAS': '*', 
    32         'ANCHOR': '&', 
    33         'TAG': '!', 
    34         'SCALAR': '_', 
    35         'BLOCK_SEQ_START': '[[', 
    36         'BLOCK_MAP_START': '{{', 
    37         'BLOCK_END': ']}', 
    38         'FLOW_SEQ_START': '[', 
    39         'FLOW_SEQ_END': ']', 
    40         'FLOW_MAP_START': '{', 
    41         'FLOW_MAP_END': '}', 
    42         'ENTRY': ',', 
    43         'KEY': '?', 
    44         'VALUE': ':', 
     28        YAMLDirective: '%', 
     29        TagDirective: '%', 
     30        ReservedDirective: '%', 
     31        DocumentStart: '---', 
     32        DocumentEnd: '...', 
     33        Alias: '*', 
     34        Anchor: '&', 
     35        Tag: '!', 
     36        Scalar: '_', 
     37        BlockSequenceStart: '[[', 
     38        BlockMappingStart: '{{', 
     39        BlockEnd: ']}', 
     40        FlowSequenceStart: '[', 
     41        FlowSequenceEnd: ']', 
     42        FlowMappingStart: '{', 
     43        FlowMappingEnd: '}', 
     44        Entry: ',', 
     45        Key: '?', 
     46        Value: ':', 
    4547    } 
    4648 
     
    4951        tokens2 = file(tokens_filename, 'rb').read().split() 
    5052        try: 
    51             scanner = Scanner() 
    52             tokens1 = scanner.scan(data_filename, file(data_filename, 'rb').read()) 
    53             tokens1 = [self.replaces[t] for t in tokens1] 
     53            scanner = Scanner(data_filename, file(data_filename, 'rb').read()) 
     54            tokens1 = [] 
     55            while not isinstance(scanner.peek_token(), End): 
     56                tokens1.append(scanner.get_token()) 
     57            tokens1 = [self.replaces[t.__class__] for t in tokens1] 
    5458            self.failUnlessEqual(tokens1, tokens2) 
    5559        except: 
    5660            print 
     61            print "DATA:" 
     62            print file(data_filename, 'rb').read() 
    5763            print "TOKENS1:", tokens1 
    5864            print "TOKENS2:", tokens2 
     
    6167TestTokens.add_tests('testTokens', '.data', '.tokens') 
    6268 
     69class TestScanner(test_appliance.TestAppliance): 
     70 
     71    def _testScanner(self, test_name, data_filename, canonical_filename): 
     72        for filename in [canonical_filename, data_filename]: 
     73            tokens = None 
     74            try: 
     75                scanner = Scanner(filename, file(filename, 'rb').read()) 
     76                tokens = [] 
     77                while not isinstance(scanner.peek_token(), End): 
     78                    tokens.append(scanner.get_token().__class__.__name__) 
     79            except: 
     80                print 
     81                print "DATA:" 
     82                print file(data_filename, 'rb').read() 
     83                print "TOKENS:", tokens 
     84                raise 
     85 
     86TestScanner.add_tests('testScanner', '.data', '.canonical') 
     87 
Note: See TracChangeset for help on using the changeset viewer.