Mon, 24 Feb 2025 15:11:18 +0100
Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
9325 | 1 | # -*- coding: utf-8 -*- |
2 | ||
11090
f5f5f5803935
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10996
diff
changeset
|
3 | # Copyright (c) 2022 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
9325 | 4 | # |
5 | ||
6 | """ | |
10996
a3dc181d14e1
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10683
diff
changeset
|
7 | Module implementing checks for using 'requests' or 'httpx' calls without timeout. |
9325 | 8 | """ |
9 | ||
10 | # | |
11 | # This is a modified version of the one found in the bandit package. | |
12 | # | |
13 | # SPDX-License-Identifier: Apache-2.0 | |
14 | # | |
15 | ||
16 | ||
17 | def getChecks(): | |
18 | """ | |
19 | Public method to get a dictionary with checks handled by this module. | |
20 | ||
21 | @return dictionary containing checker lists containing checker function and | |
22 | list of codes | |
23 | @rtype dict | |
24 | """ | |
25 | return { | |
26 | "Call": [ | |
11147
dee6e106b4d3
Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11137
diff
changeset
|
27 | (checkRequestWithouTimeout, ("S-114",)), |
9325 | 28 | ], |
29 | } | |
30 | ||
31 | ||
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10507
diff
changeset
|
32 | def checkRequestWithouTimeout(reportError, context, _config): |
9325 | 33 | """ |
34 | Function to check for use of requests without timeout. | |
35 | ||
36 | @param reportError function to be used to report errors | |
37 | @type func | |
38 | @param context security context object | |
39 | @type SecurityContext | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10507
diff
changeset
|
40 | @param _config dictionary with configuration data (unused) |
9325 | 41 | @type dict |
42 | """ | |
10996
a3dc181d14e1
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10683
diff
changeset
|
43 | httpVerbs = {"get", "options", "head", "post", "put", "patch", "delete"} |
a3dc181d14e1
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10683
diff
changeset
|
44 | httpxAttrs = {"request", "stream", "Client", "AsyncClient"} | httpVerbs |
10507
d1c6608155ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
45 | qualName = context.callFunctionNameQual.split(".")[0] |
11136
437db2f032fd
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
46 | |
437db2f032fd
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
47 | if ( |
437db2f032fd
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
48 | qualName == "requests" |
437db2f032fd
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
49 | and context.callFunctionName in httpVerbs |
11137
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
50 | and context.checkCallArgValue("timeout") is None |
11136
437db2f032fd
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
51 | ): |
11137
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
52 | # check for missing timeout |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
53 | reportError( |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
54 | context.node.lineno - 1, |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
55 | context.node.col_offset, |
11147
dee6e106b4d3
Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11137
diff
changeset
|
56 | "S-114.1", |
11137
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
57 | "M", |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
58 | "L", |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
59 | qualName, |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
60 | ) |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
61 | |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
62 | if ( |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
63 | (qualName == "requests" and context.callFunctionName in httpVerbs) |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
64 | or (qualName == "httpx" and context.callFunctionName in httpxAttrs) |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
65 | ) and context.checkCallArgValue("timeout", "None"): |
9325 | 66 | # check for timeout=None |
11137
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
67 | reportError( |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
68 | context.node.lineno - 1, |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
69 | context.node.col_offset, |
11147
dee6e106b4d3
Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11137
diff
changeset
|
70 | "S-114.2", |
11137
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
71 | "M", |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
72 | "L", |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
73 | qualName, |
a90284948331
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11136
diff
changeset
|
74 | ) |