1; subclasses of unittest.TestCase or TestCase
2(
3 (class_definition
4 name: (identifier) @run @_unittest_class_name
5 superclasses: (argument_list
6 [(identifier) @_superclass
7 (attribute (identifier) @_superclass)]
8 )
9 (#eq? @_superclass "TestCase")
10 ) @_python-unittest-class
11 (#set! tag python-unittest-class)
12)
13
14; test methods whose names start with `test` in a TestCase
15(
16 (class_definition
17 name: (identifier) @_unittest_class_name
18 superclasses: (argument_list
19 [(identifier) @_superclass
20 (attribute (identifier) @_superclass)]
21 )
22 (#eq? @_superclass "TestCase")
23 body: (block
24 (function_definition
25 name: (identifier) @run @_unittest_method_name
26 (#match? @_unittest_method_name "^test.*")
27 ) @_python-unittest-method
28 (#set! tag python-unittest-method)
29 )
30 )
31)