| Revision 39,
1.7 KB
checked in by xi, 7 years ago
(diff) |
|
Working on the scanner.
|
| Line | |
|---|
| 1 | |
|---|
| 2 | import test_appliance |
|---|
| 3 | |
|---|
| 4 | from yaml.scanner import Scanner |
|---|
| 5 | |
|---|
| 6 | class TestTokens(test_appliance.TestAppliance): |
|---|
| 7 | |
|---|
| 8 | # Tokens mnemonic: |
|---|
| 9 | # directive: % |
|---|
| 10 | # document_start: --- |
|---|
| 11 | # document_end: ... |
|---|
| 12 | # alias: * |
|---|
| 13 | # anchor: & |
|---|
| 14 | # tag: ! |
|---|
| 15 | # scalar _ |
|---|
| 16 | # block_sequence_start: [[ |
|---|
| 17 | # block_mapping_start: {{ |
|---|
| 18 | # block_end: ]} |
|---|
| 19 | # flow_sequence_start: [ |
|---|
| 20 | # flow_sequence_end: ] |
|---|
| 21 | # flow_mapping_start: { |
|---|
| 22 | # flow_mapping_end: } |
|---|
| 23 | # entry: , |
|---|
| 24 | # key: ? |
|---|
| 25 | # value: : |
|---|
| 26 | |
|---|
| 27 | 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': ':', |
|---|
| 45 | } |
|---|
| 46 | |
|---|
| 47 | def _testTokens(self, test_name, data_filename, tokens_filename): |
|---|
| 48 | tokens1 = None |
|---|
| 49 | tokens2 = file(tokens_filename, 'rb').read().split() |
|---|
| 50 | try: |
|---|
| 51 | scanner = Scanner() |
|---|
| 52 | tokens1 = scanner.scan(data_filename, file(data_filename, 'rb').read()) |
|---|
| 53 | tokens1 = [self.replaces[t] for t in tokens1] |
|---|
| 54 | self.failUnlessEqual(tokens1, tokens2) |
|---|
| 55 | except: |
|---|
| 56 | print |
|---|
| 57 | print "TOKENS1:", tokens1 |
|---|
| 58 | print "TOKENS2:", tokens2 |
|---|
| 59 | raise |
|---|
| 60 | |
|---|
| 61 | TestTokens.add_tests('testTokens', '.data', '.tokens') |
|---|
| 62 | |
|---|
Note: See
TracBrowser
for help on using the repository browser.