1*16467b97STreehugger Robotimport sys 2*16467b97STreehugger Robotimport unittest 3*16467b97STreehugger Robot 4*16467b97STreehugger Robotimport antlr3 5*16467b97STreehugger Robot 6*16467b97STreehugger Robot 7*16467b97STreehugger Robotclass TestBaseRecognizer(unittest.TestCase): 8*16467b97STreehugger Robot """Tests for BaseRecognizer class""" 9*16467b97STreehugger Robot 10*16467b97STreehugger Robot def testGetRuleInvocationStack(self): 11*16467b97STreehugger Robot """BaseRecognizer._getRuleInvocationStack()""" 12*16467b97STreehugger Robot 13*16467b97STreehugger Robot rules = antlr3.BaseRecognizer._getRuleInvocationStack(__name__) 14*16467b97STreehugger Robot self.assertEqual( 15*16467b97STreehugger Robot rules, 16*16467b97STreehugger Robot ['testGetRuleInvocationStack'] 17*16467b97STreehugger Robot ) 18*16467b97STreehugger Robot 19*16467b97STreehugger Robot 20*16467b97STreehugger Robotclass TestTokenSource(unittest.TestCase): 21*16467b97STreehugger Robot """Testcase to the antlr3.TokenSource class""" 22*16467b97STreehugger Robot 23*16467b97STreehugger Robot 24*16467b97STreehugger Robot def testIteratorInterface(self): 25*16467b97STreehugger Robot """TokenSource.next()""" 26*16467b97STreehugger Robot 27*16467b97STreehugger Robot class TrivialToken(object): 28*16467b97STreehugger Robot def __init__(self, type): 29*16467b97STreehugger Robot self.type = type 30*16467b97STreehugger Robot 31*16467b97STreehugger Robot class TestSource(antlr3.TokenSource): 32*16467b97STreehugger Robot def __init__(self): 33*16467b97STreehugger Robot self.tokens = [ 34*16467b97STreehugger Robot TrivialToken(1), 35*16467b97STreehugger Robot TrivialToken(2), 36*16467b97STreehugger Robot TrivialToken(3), 37*16467b97STreehugger Robot TrivialToken(4), 38*16467b97STreehugger Robot TrivialToken(antlr3.EOF), 39*16467b97STreehugger Robot ] 40*16467b97STreehugger Robot 41*16467b97STreehugger Robot def nextToken(self): 42*16467b97STreehugger Robot return self.tokens.pop(0) 43*16467b97STreehugger Robot 44*16467b97STreehugger Robot 45*16467b97STreehugger Robot src = TestSource() 46*16467b97STreehugger Robot tokens = [] 47*16467b97STreehugger Robot for token in src: 48*16467b97STreehugger Robot tokens.append(token.type) 49*16467b97STreehugger Robot 50*16467b97STreehugger Robot self.assertEqual(tokens, [1, 2, 3, 4]) 51*16467b97STreehugger Robot 52*16467b97STreehugger Robot 53*16467b97STreehugger Robot 54*16467b97STreehugger Robotclass TestLexer(unittest.TestCase): 55*16467b97STreehugger Robot 56*16467b97STreehugger Robot def testInit(self): 57*16467b97STreehugger Robot """Lexer.__init__()""" 58*16467b97STreehugger Robot 59*16467b97STreehugger Robot class TLexer(antlr3.Lexer): 60*16467b97STreehugger Robot api_version = 'HEAD' 61*16467b97STreehugger Robot 62*16467b97STreehugger Robot stream = antlr3.StringStream('foo') 63*16467b97STreehugger Robot TLexer(stream) 64*16467b97STreehugger Robot 65*16467b97STreehugger Robot 66*16467b97STreehugger Robotif __name__ == "__main__": 67*16467b97STreehugger Robot unittest.main(testRunner=unittest.TextTestRunner(verbosity=2)) 68