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()