1 2from clang.cindex import AccessSpecifier 3from clang.cindex import Cursor 4from clang.cindex import TranslationUnit 5 6from .util import get_cursor 7from .util import get_tu 8 9import unittest 10 11 12class TestAccessSpecifiers(unittest.TestCase): 13 def test_access_specifiers(self): 14 """Ensure that C++ access specifiers are available on cursors""" 15 16 tu = get_tu(""" 17class test_class { 18public: 19 void public_member_function(); 20protected: 21 void protected_member_function(); 22private: 23 void private_member_function(); 24}; 25""", lang = 'cpp') 26 27 test_class = get_cursor(tu, "test_class") 28 self.assertEqual(test_class.access_specifier, AccessSpecifier.INVALID) 29 30 public = get_cursor(tu.cursor, "public_member_function") 31 self.assertEqual(public.access_specifier, AccessSpecifier.PUBLIC) 32 33 protected = get_cursor(tu.cursor, "protected_member_function") 34 self.assertEqual(protected.access_specifier, AccessSpecifier.PROTECTED) 35 36 private = get_cursor(tu.cursor, "private_member_function") 37 self.assertEqual(private.access_specifier, AccessSpecifier.PRIVATE) 38