Home | History | Annotate | Download | only in cindex
      1 from clang.cindex import CursorKind
      2 
      3 def test_name():
      4     assert CursorKind.UNEXPOSED_DECL.name is 'UNEXPOSED_DECL'
      5 
      6 def test_get_all_kinds():
      7     kinds = CursorKind.get_all_kinds()
      8     assert CursorKind.UNEXPOSED_DECL in kinds
      9     assert CursorKind.TRANSLATION_UNIT in kinds
     10     assert CursorKind.VARIABLE_REF in kinds
     11     assert CursorKind.LAMBDA_EXPR in kinds
     12     assert CursorKind.OBJ_BOOL_LITERAL_EXPR in kinds
     13     assert CursorKind.OBJ_SELF_EXPR in kinds
     14     assert CursorKind.MS_ASM_STMT in kinds
     15     assert CursorKind.MODULE_IMPORT_DECL in kinds
     16 
     17 def test_kind_groups():
     18     """Check that every kind classifies to exactly one group."""
     19 
     20     assert CursorKind.UNEXPOSED_DECL.is_declaration()
     21     assert CursorKind.TYPE_REF.is_reference()
     22     assert CursorKind.DECL_REF_EXPR.is_expression()
     23     assert CursorKind.UNEXPOSED_STMT.is_statement()
     24     assert CursorKind.INVALID_FILE.is_invalid()
     25 
     26     assert CursorKind.TRANSLATION_UNIT.is_translation_unit()
     27     assert not CursorKind.TYPE_REF.is_translation_unit()
     28 
     29     assert CursorKind.PREPROCESSING_DIRECTIVE.is_preprocessing()
     30     assert not CursorKind.TYPE_REF.is_preprocessing()
     31 
     32     assert CursorKind.UNEXPOSED_DECL.is_unexposed()
     33     assert not CursorKind.TYPE_REF.is_unexposed()
     34 
     35     for k in CursorKind.get_all_kinds():
     36         group = [n for n in ('is_declaration', 'is_reference', 'is_expression',
     37                              'is_statement', 'is_invalid', 'is_attribute')
     38                  if getattr(k, n)()]
     39 
     40         if k in (   CursorKind.TRANSLATION_UNIT,
     41                     CursorKind.MACRO_DEFINITION,
     42                     CursorKind.MACRO_INSTANTIATION,
     43                     CursorKind.INCLUSION_DIRECTIVE,
     44                     CursorKind.PREPROCESSING_DIRECTIVE):
     45             assert len(group) == 0
     46         else:
     47             assert len(group) == 1
     48