def setUp(self): self.lexer = Lexer()
class TestLexer(unittest.TestCase): def setUp(self): self.lexer = Lexer() def testEmptyInputSetsCursorToEOF(self): self.lexer.parse('') self.assertEqual(self.lexer.c, EOF) def testDoesReset(self): c, cursor, string = self.lexer.c, self.lexer.cursor, self.lexer.string self.lexer.parse('') self.lexer._reset() self.assertEqual(c, self.lexer.c) self.assertEqual(cursor, self.lexer.cursor) self.assertEqual(string, self.lexer.string) def testCursorIsPrimed(self): self.lexer.parse("foo") self.assertEqual(self.lexer.c, 'f') def testCanConsume(self): self.lexer.parse("foo") self.lexer.consume() self.assertEqual(self.lexer.c, 'o') self.assertEqual(self.lexer.cursor, 1) def testCanReachEOF(self): self.lexer.parse("f") self.lexer.consume() self.assertEqual(self.lexer.c, EOF) def testPassingInJunk(self): self.assertRaises(TypeError, self.lexer.parse, 100) self.assertRaises(TypeError, self.lexer.parse, [])