import os from clang.cindex import Config if 'CLANG_LIBRARY_PATH' in os.environ: Config.set_library_path(os.environ['CLANG_LIBRARY_PATH']) from clang.cindex import TokenKind import unittest class TestTokenKind(unittest.TestCase): def test_constructor(self): """Ensure TokenKind constructor works as expected.""" t = TokenKind(5, 'foo') self.assertEqual(t.value, 5) self.assertEqual(t.name, 'foo') def test_bad_register(self): """Ensure a duplicate value is rejected for registration.""" with self.assertRaises(ValueError): TokenKind.register(2, 'foo') def test_unknown_value(self): """Ensure trying to fetch an unknown value raises.""" with self.assertRaises(ValueError): TokenKind.from_value(-1) def test_registration(self): """Ensure that items registered appear as class attributes.""" self.assertTrue(hasattr(TokenKind, 'LITERAL')) literal = TokenKind.LITERAL self.assertIsInstance(literal, TokenKind) def test_from_value(self): """Ensure registered values can be obtained from from_value().""" t = TokenKind.from_value(3) self.assertIsInstance(t, TokenKind) self.assertEqual(t, TokenKind.LITERAL) def test_repr(self): """Ensure repr() works.""" r = repr(TokenKind.LITERAL) self.assertEqual(r, 'TokenKind.LITERAL')