Rasmus Wriedt Larsen
d046e39a82
Python: Fix tornado inline expectations in tests
...
After merge commit
2021-02-02 12:04:24 +01:00
Taus Brock-Nannestad
cd7b013a0c
Python: Add missing documentation
2021-02-01 18:57:25 +01:00
yoff
b92af8bcec
Merge pull request #5042 from RasmusWL/django-more-view-classes
...
Python: Add full-path modeling of Django more view classes
2021-02-01 17:33:29 +01:00
yoff
c0511ca9f9
Merge pull request #5053 from github/python-add-essavariable-locations
...
Python: Add locations for ESSA variables
2021-02-01 17:31:25 +01:00
yoff
384d0212b1
Update python/ql/src/semmle/python/dataflow/new/internal/DataFlowPrivate.qll
...
Co-authored-by: Taus <tausbn@github.com >
2021-02-01 16:41:43 +01:00
Taus Brock-Nannestad
fc01e5607f
Python: Use getLocation directly on EssaNode
2021-02-01 14:55:18 +01:00
Taus Brock-Nannestad
b8194bd1f8
Python: Add support for API graphs
...
Currently only supports the "use" side of things.
For the most part, this follows the corresponding implementation for
JavaScript. Major differences include:
- No `MkImportUse` nodes -- we just move directly from
`MkModuleImport` to its uses.
- Paths are no longer labelled by s-expressions, but rather by a
string that mirrors how you would access it in QL. This makes it very
easy to see how to access an API component -- simply look at its
`toString`!
This PR also extends `LocalSourceNode` to support looking up attribute
references and invocations of such nodes. This was again based on the
JavaScript equivalent (though without specific classes for
`InvokeNode` and the like, it's a bit more awkward to use).
2021-02-01 14:38:59 +01:00
Taus
b8b42eaea3
Merge pull request #5064 from RasmusWL/fix-missing-override
...
Python: Add missing override annotation
2021-02-01 12:37:38 +01:00
Rasmus Wriedt Larsen
4ef9a6cf2a
Python: Add missing override annotation
2021-02-01 11:28:41 +01:00
Rasmus Wriedt Larsen
2a9e66a667
Python: Fix problem after merge conflict
2021-02-01 11:17:04 +01:00
Rasmus Wriedt Larsen
4b6a59a126
Python: Apply code-review suggestion
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2021-02-01 11:12:32 +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
7f1affa122
Python: UnpackingAssignment -> IterableUnpacking
2021-01-29 17:44:53 +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
Rasmus Wriedt Larsen
94e7980ca4
Merge branch 'main' into port-url-redirect-query
2021-01-29 16:22:50 +01:00
Rasmus Wriedt Larsen
ef831bb16f
Python: Fix tornado redirect QLdoc
2021-01-29 16:21:39 +01:00
Rasmus Wriedt Larsen
9c01aa2304
Python: Add modeling for django.shortcuts.redirect
2021-01-29 15:41:00 +01:00
Rasmus Wriedt Larsen
ff2f2b5792
Python: Add django.shortcuts.redirect test
2021-01-29 15:37:20 +01:00
Taus Brock-Nannestad
817a142abc
Python: Add getLocation to EssaVariable.
...
This may be a slightly "bogus" location to provide for ESSA variables,
but it can be useful for debugging. For instance, where previously you
might just see
```
SSA variable x | ...
SSA variable x | ...
SSA variable x | ...
SSA variable x | ...
SSA variable x | ...
SSA variable x | ...
```
where each instance of `SSA variable x` was just a bare string, now
each occurrence will tell you (via its location) _where_ this variable
is being (re)defined.
2021-01-29 14:45:12 +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
b6007cf324
Merge pull request #5023 from yoff/python-unify-synthetic-post-update-nodes
...
Python: Only generate one post-update node, even if there are multiple reasons for doing so.
2021-01-28 13:11:50 +01:00
Rasmus Wriedt Larsen
173012578e
Python: Add missing type-tracking step for django.views
...
Easy to overlook, and will onyl be caught by tests if they use `import
parent.thing` and not `from parent import thing`
2021-01-28 12:10:42 +01:00
Rasmus Wriedt Larsen
54725ccbb9
Python: Support full-path import of Django View class
...
requestHandler still MISSING :(
2021-01-28 12:10:40 +01:00
Rasmus Wriedt Larsen
61d69f2cc8
Python: Add test for full-path import of Django View class
2021-01-28 12:10:39 +01:00
Rasmus Lerchedahl Petersen
0e0b18c214
Python: Adjust comment based on review.
2021-01-28 01:09:03 +01:00
Rasmus Lerchedahl Petersen
ae2c122159
Python: Small refactor
...
- align synthetic pre-update nodes with synthetic post -update nodes
- move the classes into the modules
- rename modules after the new main class (eliding "needs")
2021-01-27 23:15:50 +01:00
Rasmus Lerchedahl Petersen
2120868939
Python: format
2021-01-27 19:48:01 +01:00
yoff
2c5da85e3b
Update python/ql/src/semmle/python/dataflow/new/internal/DataFlowPrivate.qll
...
Co-authored-by: Taus <tausbn@github.com >
2021-01-27 19:43:40 +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
yoff
f2241e04e5
Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2021-01-27 12:15:35 +01:00
Rasmus Lerchedahl Petersen
5d62a56ed8
Python: Remove debug function
2021-01-27 08:24:11 +01:00
Rasmus Lerchedahl Petersen
d18c1602cd
Python: autoformat
2021-01-27 01:25:38 +01:00
Rasmus Lerchedahl Petersen
d29fdda779
Python: Only generate one post-update node,
...
even if there are multiple reasons for doing so.
Solves `uniqueNodeToString` inconsistencies
(and probably saves quite a lot of nodes).
2021-01-27 01:20:51 +01:00
Rasmus Lerchedahl Petersen
9b13834d28
Python: small refactor
2021-01-26 21:17:59 +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
yoff
cd85cf1645
Update python/ql/src/semmle/python/dataflow/new/internal/DataFlowPrivate.qll
2021-01-26 19:16:54 +01:00
yoff
500ea12224
Apply suggestions from code review
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2021-01-26 19:14:46 +01:00
Henning Makholm
54f00de3e0
Add "tests" fields to test qlpacks
...
This will allow `codeql resolve tests --ignore-dubious-cases`
(and thus the VSCode extension) to recognize all `.ql` files in those
packs as test cases, even if they don't have accompanying `.expected`
files.
CLI versions prior to 2.1.0 will choke on this, but it's almost 10
months since that came out.
2021-01-26 18:15:22 +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
e253855999
Python: Add comment about reverse reads.
2021-01-26 12:11:21 +01:00
Rasmus Lerchedahl Petersen
e44f1813fa
Python: Add TODO comment
2021-01-26 11:29:14 +01:00
Rasmus Lerchedahl Petersen
2c58643fd1
Python: Test for parameters without nodes.
2021-01-26 11:28:31 +01:00