File tree Expand file tree Collapse file tree 5 files changed +45
-21
lines changed
lib/semmle/python/filters
library-tests/filters/tests
query-tests/Statements/asserts Expand file tree Collapse file tree 5 files changed +45
-21
lines changed Original file line number Diff line number Diff line change 1
1
import python
2
+ private import semmle.python.ApiGraphs
2
3
3
4
abstract class TestScope extends Scope { }
4
5
5
- // don't extend Class directly to avoid ambiguous method warnings
6
- class UnitTestClass extends TestScope {
6
+ class UnitTestClass extends TestScope , Class {
7
7
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 ( )
12
13
)
13
14
}
14
15
}
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 |
4
1
| test_foo.py:3:1:3:15 | Function test_foo |
5
2
| unittest_test.py:3:1:3:33 | Class FooTest |
6
3
| unittest_test.py:4:5:4:25 | Function test_valid |
4
+ | unittest_test.py:7:1:7:49 | Class FunctionFooTest |
5
+ | 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 |
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 3
3
class FooTest (unittest .TestCase ):
4
4
def test_valid (self ):
5
5
pass
6
+
7
+ class FunctionFooTest (unittest .FunctionTestCase ):
8
+ def test_valid (self ):
9
+ pass
10
+
11
+ class AsyncTest (unittest .IsolatedAsyncioTestCase ):
12
+ async def test_valid (self ):
13
+ pass
14
+
15
+ # django -- see https://docs.djangoproject.com/en/4.0/topics/testing/overview/
16
+ import django .test
17
+ class MyDjangoUnitTest (django .test .TestCase ):
18
+ def test_valid (self ):
19
+ pass
20
+
21
+ # flask -- see https://pythonhosted.org/Flask-Testing/
22
+ import flask_testing
23
+ class MyFlaskUnitTest (flask_testing .LiveServerTestCase ):
24
+ def test_valid (self ):
25
+ pass
26
+
27
+ # tornado -- see https://www.tornadoweb.org/en/stable/testing.html#tornado.testing.AsyncHTTPTestCase
28
+ import tornado .testing
29
+ class MyTornadoUnitTest (tornado .testing .AsyncHTTPTestCase ):
30
+ def test_valid (self ):
31
+ pass
Original file line number Diff line number Diff line change @@ -61,8 +61,8 @@ def ok_assert_false(x):
61
61
if x :
62
62
assert 0 == 1 , "Ok"
63
63
64
- class TestCase :
65
- pass
64
+ from unittest import TestCase
65
+
66
66
67
67
class MyTest (TestCase ):
68
68
def test_ok_assert_in_test (self , x ):
You can’t perform that action at this time.
0 commit comments