| 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 |