| import os |
| import sys |
| import antlr3 |
| import testbase |
| import unittest |
| from cStringIO import StringIO |
| import difflib |
| |
| class t020fuzzy(testbase.ANTLRTest): |
| def setUp(self): |
| self.compileGrammar('t020fuzzyLexer.g') |
| |
| |
| def testValid(self): |
| inputPath = os.path.splitext(__file__)[0] + '.input' |
| stream = antlr3.StringStream(open(inputPath).read()) |
| lexer = self.getLexer(stream) |
| |
| while True: |
| token = lexer.nextToken() |
| if token.type == antlr3.EOF: |
| break |
| |
| |
| output = lexer.output.getvalue() |
| |
| outputPath = os.path.splitext(__file__)[0] + '.output' |
| testOutput = open(outputPath).read() |
| |
| success = (output == testOutput) |
| if not success: |
| d = difflib.Differ() |
| r = d.compare(output.splitlines(1), testOutput.splitlines(1)) |
| self.fail( |
| ''.join([l.encode('ascii', 'backslashreplace') for l in r]) |
| ) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |