File tree Expand file tree Collapse file tree 2 files changed +15
-9
lines changed
lib/semmle/python/filters
test/library-tests/filters/tests Expand file tree Collapse file tree 2 files changed +15
-9
lines changed Original file line number Diff line number Diff line change 11import python
2+ private import semmle.python.ApiGraphs
23
34abstract class TestScope extends Scope { }
45
5- // don't extend Class directly to avoid ambiguous method warnings
6- class UnitTestClass extends TestScope {
6+ class UnitTestClass extends TestScope , Class {
77 UnitTestClass ( ) {
8- exists ( ClassValue cls | this = cls .getScope ( ) |
9- cls .getABaseType + ( ) = Module:: named ( "unittest" ) .attr ( _)
10- or
11- cls .getABaseType + ( ) .getName ( ) .toLowerCase ( ) = "testcase"
8+ exists ( API:: Node testCaseClass , string testCaseString |
9+ testCaseString .matches ( "%TestCase" ) and
10+ testCaseClass = any ( API:: Node mod ) .getMember ( testCaseString )
11+ |
12+ this .getParent ( ) = testCaseClass .getASubclass * ( ) .getAnImmediateUse ( ) .asExpr ( )
1213 )
1314 }
1415}
Original file line number Diff line number Diff line change 1- | test.py:4:1:4:23 | Class MyTest |
2- | test.py:6:5:6:21 | Function test_1 |
3- | test.py:9:5:9:21 | Function test_2 |
41| test_foo.py:3:1:3:15 | Function test_foo |
52| unittest_test.py:3:1:3:33 | Class FooTest |
63| unittest_test.py:4:5:4:25 | Function test_valid |
74| unittest_test.py:7:1:7:49 | Class FunctionFooTest |
85| unittest_test.py:8:5:8:25 | Function test_valid |
6+ | unittest_test.py:11:1:11:50 | Class AsyncTest |
7+ | unittest_test.py:12:11:12:31 | Function test_valid |
8+ | unittest_test.py:17:1:17:45 | Class MyDjangoUnitTest |
9+ | unittest_test.py:18:5:18:25 | Function test_valid |
10+ | unittest_test.py:23:1:23:56 | Class MyFlaskUnitTest |
11+ | unittest_test.py:24:5:24:25 | Function test_valid |
12+ | unittest_test.py:29:1:29:59 | Class MyTornadoUnitTest |
13+ | unittest_test.py:30:5:30:25 | Function test_valid |
You can’t perform that action at this time.
0 commit comments