50 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
from clang.cindex import CursorKind
 | 
						|
 | 
						|
def test_name():
 | 
						|
    assert CursorKind.UNEXPOSED_DECL.name is 'UNEXPOSED_DECL'
 | 
						|
 | 
						|
def test_get_all_kinds():
 | 
						|
    kinds = CursorKind.get_all_kinds()
 | 
						|
    assert CursorKind.UNEXPOSED_DECL in kinds
 | 
						|
    assert CursorKind.TRANSLATION_UNIT in kinds
 | 
						|
    assert CursorKind.VARIABLE_REF in kinds
 | 
						|
    assert CursorKind.LAMBDA_EXPR in kinds
 | 
						|
    assert CursorKind.OBJ_BOOL_LITERAL_EXPR in kinds
 | 
						|
    assert CursorKind.OBJ_SELF_EXPR in kinds
 | 
						|
    assert CursorKind.MS_ASM_STMT in kinds
 | 
						|
    assert CursorKind.MODULE_IMPORT_DECL in kinds
 | 
						|
    assert CursorKind.TYPE_ALIAS_TEMPLATE_DECL in kinds
 | 
						|
 | 
						|
def test_kind_groups():
 | 
						|
    """Check that every kind classifies to exactly one group."""
 | 
						|
 | 
						|
    assert CursorKind.UNEXPOSED_DECL.is_declaration()
 | 
						|
    assert CursorKind.TYPE_REF.is_reference()
 | 
						|
    assert CursorKind.DECL_REF_EXPR.is_expression()
 | 
						|
    assert CursorKind.UNEXPOSED_STMT.is_statement()
 | 
						|
    assert CursorKind.INVALID_FILE.is_invalid()
 | 
						|
 | 
						|
    assert CursorKind.TRANSLATION_UNIT.is_translation_unit()
 | 
						|
    assert not CursorKind.TYPE_REF.is_translation_unit()
 | 
						|
 | 
						|
    assert CursorKind.PREPROCESSING_DIRECTIVE.is_preprocessing()
 | 
						|
    assert not CursorKind.TYPE_REF.is_preprocessing()
 | 
						|
 | 
						|
    assert CursorKind.UNEXPOSED_DECL.is_unexposed()
 | 
						|
    assert not CursorKind.TYPE_REF.is_unexposed()
 | 
						|
 | 
						|
    for k in CursorKind.get_all_kinds():
 | 
						|
        group = [n for n in ('is_declaration', 'is_reference', 'is_expression',
 | 
						|
                             'is_statement', 'is_invalid', 'is_attribute')
 | 
						|
                 if getattr(k, n)()]
 | 
						|
 | 
						|
        if k in (   CursorKind.TRANSLATION_UNIT,
 | 
						|
                    CursorKind.MACRO_DEFINITION,
 | 
						|
                    CursorKind.MACRO_INSTANTIATION,
 | 
						|
                    CursorKind.INCLUSION_DIRECTIVE,
 | 
						|
                    CursorKind.PREPROCESSING_DIRECTIVE,
 | 
						|
                    CursorKind.OVERLOAD_CANDIDATE):
 | 
						|
            assert len(group) == 0
 | 
						|
        else:
 | 
						|
            assert len(group) == 1
 |