Rasmus Lerchedahl Petersen
a7ca065411
Python: Fix ForTarget
2021-02-03 22:14:15 +01:00
Taus Brock-Nannestad
e4c3544a3f
Python: Add support for from foo.bar import baz
...
This turned out to be fairly simple. Given an import such as
```python
from foo.bar.baz import quux
```
we create an API-graph node for each valid dotted prefix of
`foo.bar.baz`, i.e. `foo`, `foo.bar`, and `foo.bar.baz`. For these, we
then insert nodes in the API graph, such that `foo` steps to `foo.bar`
along an edge labeled `bar`, etc.
Finally, we only allow undotted names to hang off of the API-graph
root. Thus, `foo` will have a `moduleImport` edge off of the root, and
a `getMember` edge for `bar` (which in turn has a `getMember` edge for
`baz`).
Relative imports are explicitly ignored.
Finally, this commit also adds inline tests for a variety of ways of
importing modules, including a copy of the "import-helper" tests (with
a few modifications to allow a single annotation per line, as these
get rather long quickly!).
2021-02-02 21:59:33 +01:00
Rasmus Lerchedahl Petersen
27fd46b855
Python: Update test expectation
2021-02-01 08:55:20 +01:00
Rasmus Lerchedahl Petersen
6730396ad6
Python: Remove tests from non-test directory
2021-02-01 08:52:00 +01:00
Rasmus Lerchedahl Petersen
f6fa1276a6
Python: Add consistency checks
...
to all data-flow test floders
2021-01-29 21:28:43 +01:00
Rasmus Lerchedahl Petersen
05a138694d
Python: Fix crashing test
2021-01-29 21:12:44 +01:00
Rasmus Lerchedahl Petersen
182d435dc6
Python: Replace comprehension read-step by for
...
read-step. Add a version targetting sequence nodes.
2021-01-29 17:31:59 +01:00
Taus
cb195a0dc4
Merge pull request #4752 from yoff/python-dataflow-unpacking-assignment
...
Python: Dataflow, unpacking assignment
2021-01-29 14:15:28 +01:00
Taus
be5b7bb4c4
Merge pull request #5022 from yoff/python-split-lambdas
...
Python: Callable for lambdas
2021-01-29 14:12:26 +01:00
Rasmus Wriedt Larsen
5646af56dd
Python: Fix too many results from DataFlow::importNode
2021-01-27 19:11:55 +01:00
Rasmus Wriedt Larsen
0d42e546a0
Python: Add deep import chain to import-helper tests
2021-01-27 19:09:09 +01:00
Rasmus Wriedt Larsen
44bb41e84b
Python: Add extra type-tracking test for "long" import chain
...
While trying to debug an other problem related to full import of django view, I
stumbled upon this oddity. (yikes)
2021-01-27 19:06:51 +01:00
Rasmus Lerchedahl Petersen
d3e0e84c37
Python: Separate callable for lambdas
...
Since lambdas are split, but their children are not,
we use the Function as the callable.
2021-01-26 21:17:59 +01:00
Rasmus Lerchedahl Petersen
4526a1dd2f
Python: test for split lambda
2021-01-26 21:17:59 +01:00
Rasmus Wriedt Larsen
902bade5ae
Merge pull request #5015 from yoff/python-add-missing-postupdate-nodes
...
Python: add missing postupdate nodes
2021-01-26 14:39:29 +01:00
Taus
4c0f54f5d3
Merge pull request #5007 from yoff/python-disregard-comp-args
2021-01-26 12:53:33 +01:00
Rasmus Lerchedahl Petersen
2c58643fd1
Python: Test for parameters without nodes.
2021-01-26 11:28:31 +01:00
Rasmus Lerchedahl Petersen
7b9ca7171a
Python: update test expectations
2021-01-26 09:47:48 +01:00
Rasmus Lerchedahl Petersen
dacc21d0b5
Python: update test expectation
2021-01-26 09:45:41 +01:00
Rasmus Wriedt Larsen
a8186be2fa
Python: Add test of type-tracking self in methods
2021-01-25 17:20:11 +01:00
Rasmus Lerchedahl Petersen
ad39bfb2ff
Python: Add postupdate nodes for subscripts.
...
This drops reverse read inconsistencies on saltstack from 14909 to 1353.
2021-01-25 17:01:25 +01:00
Rasmus Lerchedahl Petersen
361bee851a
Python: Tests inspired by reverse read check
2021-01-25 17:01:25 +01:00
Rasmus Lerchedahl Petersen
4ff2c6d85a
Python: fix test expectation
...
probably a copy-paste error..
2021-01-25 16:49:51 +01:00
Rasmus Lerchedahl Petersen
89e56707c3
Python: Omit all unresolved parameter nodes.
...
Drops the results further to 139.
2021-01-24 16:16:07 +01:00
Rasmus Lerchedahl Petersen
0d20a4cb4a
Python: Simplify modelling
2021-01-22 19:40:34 +01:00
Rasmus Lerchedahl Petersen
f948ef8f27
Merge branch 'main' of github.com:github/codeql into python-dataflow-unpacking-assignment
2021-01-22 16:26:48 +01:00
Rasmus Lerchedahl Petersen
e786be06ae
Python: Fix broken references
2021-01-21 12:40:35 +01:00
Rasmus Lerchedahl Petersen
419449fb8a
Python: default value for argN
2021-01-20 20:33:04 +01:00
Rasmus Lerchedahl Petersen
2409a7899b
Python: Remove func tag in some situations.
...
Also make ArgumentNode public
2021-01-20 20:18:40 +01:00
Rasmus Lerchedahl Petersen
7a5d553dd2
Merge branch 'main' of github.com:github/codeql into python-dataflow-unpacking-assignment
2021-01-20 19:27:34 +01:00
yoff
3fc085ff38
Update python/ql/test/experimental/dataflow/TestUtil/RoutingTest.qll
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2021-01-20 16:11:40 +01:00
Rasmus Lerchedahl Petersen
5a652ab3aa
Python: Add missing test cases
2021-01-19 20:19:45 +01:00
Rasmus Lerchedahl Petersen
23d3343bfb
Merge branch 'main' of github.com:github/codeql into python-dataflow-modernize-tests
2021-01-19 18:24:52 +01:00
Rasmus Lerchedahl Petersen
8e126603b3
Python: Remember that old style tests still needs
...
updated expectations.
2021-01-19 18:21:27 +01:00
Rasmus Lerchedahl Petersen
ae38bbe03b
Python: Fearlessly adding another test
...
in the middle of the file.
2021-01-19 18:19:11 +01:00
Rasmus Lerchedahl Petersen
69913c053e
Python: relative line numbers in
...
MISSING-annotations
2021-01-19 18:10:22 +01:00
Rasmus Lerchedahl Petersen
77da4b0106
Python: Remove absolute line numbers
...
- Use relative line numbers in flow test
- Elide line numbers in routing test (new concept)
2021-01-19 17:05:42 +01:00
Rasmus Lerchedahl Petersen
42fa3bdb81
Python: Only consider the closest SOURCE
...
(in use-use flow) a source
2021-01-19 09:13:17 +01:00
Rasmus Lerchedahl Petersen
bd3de23c6e
Python: Remove some unhelpful store steps
2021-01-19 00:05:10 +01:00
Rasmus Lerchedahl Petersen
bfc6660795
Python: Remember to update test expectations
2021-01-18 15:00:06 +01:00
Rasmus Lerchedahl Petersen
66426bf0cc
Python: Add tests for iterable unpacking
...
in for-iterations and comprehensions.
2021-01-18 09:36:13 +01:00
Rasmus Lerchedahl Petersen
dfdfd3c2b7
Python: FIx flow
2021-01-14 01:19:58 +01:00
Rasmus Lerchedahl Petersen
6dc0d691ac
Python: Final(?!) fix of annotations
2021-01-14 01:06:10 +01:00
Rasmus Lerchedahl Petersen
e3199fbbe2
Python: Fix inconsostencies to fix flow
...
(and fix annotations again)
2021-01-14 00:09:18 +01:00
Rasmus Lerchedahl Petersen
36a4a5081e
Python: big refactor and fix tests
...
Make sure tests are valid
Fix wrong test annotations
Big refactor to make code readable
Big comment to explain code
2021-01-13 18:33:08 +01:00
Rasmus Lerchedahl Petersen
b2d95e617d
Python: Test interaction between nesting,
...
iteration, and conversion
2021-01-13 09:02:56 +01:00
Rasmus Lerchedahl Petersen
b10cf78e17
Python: start handling iterated unpacking
2021-01-13 08:40:47 +01:00
Rasmus Lerchedahl Petersen
4ee2f49f38
Python: model conversion during unpacking
2021-01-12 22:19:31 +01:00
Rasmus Lerchedahl Petersen
d8d8b45c6a
Python: add test annotations
2021-01-12 22:03:49 +01:00
Rasmus Lerchedahl Petersen
a1ab5cc2b8
Python: start support for nested unpacking
2021-01-12 13:09:12 +01:00