42 lines · python
1import os2 3from clang.cindex import AccessSpecifier, Config4 5if "CLANG_LIBRARY_PATH" in os.environ:6 Config.set_library_path(os.environ["CLANG_LIBRARY_PATH"])7 8import unittest9 10from .util import get_cursor, get_tu11 12 13class TestAccessSpecifiers(unittest.TestCase):14 def test_access_specifiers(self):15 """Ensure that C++ access specifiers are available on cursors"""16 17 tu = get_tu(18 """19class test_class {20public:21 void public_member_function();22protected:23 void protected_member_function();24private:25 void private_member_function();26};27""",28 lang="cpp",29 )30 31 test_class = get_cursor(tu, "test_class")32 self.assertEqual(test_class.access_specifier, AccessSpecifier.INVALID)33 34 public = get_cursor(tu.cursor, "public_member_function")35 self.assertEqual(public.access_specifier, AccessSpecifier.PUBLIC)36 37 protected = get_cursor(tu.cursor, "protected_member_function")38 self.assertEqual(protected.access_specifier, AccessSpecifier.PROTECTED)39 40 private = get_cursor(tu.cursor, "private_member_function")41 self.assertEqual(private.access_specifier, AccessSpecifier.PRIVATE)42