runnables.scm

 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)