1from clang.cindex import TokenKind 2 3import unittest 4 5 6class TestTokenKind(unittest.TestCase): 7 def test_constructor(self): 8 """Ensure TokenKind constructor works as expected.""" 9 10 t = TokenKind(5, 'foo') 11 12 self.assertEqual(t.value, 5) 13 self.assertEqual(t.name, 'foo') 14 15 def test_bad_register(self): 16 """Ensure a duplicate value is rejected for registration.""" 17 18 with self.assertRaises(ValueError): 19 TokenKind.register(2, 'foo') 20 21 def test_unknown_value(self): 22 """Ensure trying to fetch an unknown value raises.""" 23 24 with self.assertRaises(ValueError): 25 TokenKind.from_value(-1) 26 27 def test_registration(self): 28 """Ensure that items registered appear as class attributes.""" 29 self.assertTrue(hasattr(TokenKind, 'LITERAL')) 30 literal = TokenKind.LITERAL 31 32 self.assertIsInstance(literal, TokenKind) 33 34 def test_from_value(self): 35 """Ensure registered values can be obtained from from_value().""" 36 t = TokenKind.from_value(3) 37 self.assertIsInstance(t, TokenKind) 38 self.assertEqual(t, TokenKind.LITERAL) 39 40 def test_repr(self): 41 """Ensure repr() works.""" 42 43 r = repr(TokenKind.LITERAL) 44 self.assertEqual(r, 'TokenKind.LITERAL') 45