Rasmus Wriedt Larsen
9f43108ba8
Python: Fix DataFlowCall.getEnclosingCallable
...
Now it is aligned with the implementation of DataFlow::Node
See 4bc4e0845d/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll (L134-L138)
2023-11-07 11:29:23 +01:00
Rasmus Wriedt Larsen
904a8b1ea9
Python: Add consistency tests for class scope
2023-11-07 11:29:23 +01:00
Rasmus Lerchedahl Petersen
58bf70d61b
Python: filter self steps from use-use flow
...
Factor out use-use flow in order to do this.
Also improve names and comments.
I also wanted to change the types in `difinitionFlowStep`, but
that broke the module instantiation.
2023-11-02 09:31:28 +01:00
Rasmus Lerchedahl Petersen
613831b2e1
Python: add test for post-update loop flow
2023-11-02 09:31:28 +01:00
Rasmus Lerchedahl Petersen
38b811b050
Python: Separate -> PhaseDependentFlow
2023-10-31 21:50:33 +01:00
Rasmus Lerchedahl Petersen
e745df6478
Python: module for import time flow
...
The logic for separating local flow into _import time_
and _runtime_ was duplicated a few times.
Create a module for it instead, and add a good qldoc.
2023-10-27 15:07:49 +02:00
Rasmus Wriedt Larsen
2bf4c32433
Python: Add syntactic support for yield in contextlib.contextmanager
2023-10-17 09:51:20 +02:00
Rasmus Wriedt Larsen
2399793c8a
Python: Expand contextmanager test even more
2023-10-17 09:41:30 +02:00
Rasmus Wriedt Larsen
883bd9f3b3
Python: Add test for type-tracking with yield
2023-10-16 12:09:07 +02:00
Taus
8e1bb4b364
Python: Accept moved consistency test results
...
Co-authored-by: Rasmus Lerchedahl Petersen <yoff@github.com >
2023-10-10 09:22:36 +00:00
Taus
e8ac258994
Python: Add missing flow for AssignmentExpr nodes
...
Also extend the tests surrounding this construct to be a bit more comprehensive.
Co-authored-by: Rasmus Lerchedahl Petersen <yoff@github.com >
2023-10-09 14:16:03 +00:00
Tom Hvitved
d3558f8579
Python: Update expected test output
2023-09-12 21:18:31 +02:00
Tom Hvitved
253f932d2a
Python: Use data flow consistency checks from shared pack
2023-08-30 15:29:41 +02:00
yoff
6e05246daa
Merge pull request #13935 from yoff/python/mad-on-externals
...
Python: MaD on externals
2023-08-28 14:04:54 +02:00
Rasmus Wriedt Larsen
9c44235782
Python: Modernize DataflowQueryTest.qll
...
Co-authored-by: Rasmus Lerchedahl Petersen <yoff@github.com >
2023-08-28 11:40:41 +02:00
Rasmus Lerchedahl Petersen
ad49eada48
Python: Do not alter codeql-workspaces.yml
...
And remove the qlpack referred to therein.
Instead we rename and duplicate the extesion file
that this qlpack pointed to.
These two extension files are kept in sync by `identical-files.json`.
2023-08-25 11:46:41 +02:00
Rasmus Wriedt Larsen
843f2681bb
Python: Apply suggestions from code review
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2023-08-18 10:09:45 +02:00
Rasmus Wriedt Larsen
ca93f4d223
Python: Accept .expected changes
2023-08-11 10:36:05 +02:00
Rasmus Wriedt Larsen
46af77c1af
Python: Include all assignments in data flow paths
...
Like Ruby did in https://github.com/github/codeql/pull/12566
2023-08-10 11:45:29 +02:00
Rasmus Wriedt Larsen
9bd5694c3f
Python: Add tests of path-graph for dataflow/taint-tracking
...
Although this is actually using taint-tracking (so we can use the +=
statement), I would personally forget to check under the
dataflow/tainttracking folder to look for such a test, so I'm opting to
keep it under the dataflow/ folder.
2023-08-10 11:44:17 +02:00
Rasmus Lerchedahl Petersen
dbc60140e0
Python: move tests to data extensions
...
For these tests, we cannot use the same mechanism, as we want the
data extensions to be available for both tests.
Instead, we create a ql-pack for the test directory and point to
the data entensions from there. This makes the extensions
available for all tests in the directory.
2023-08-10 09:17:34 +02:00
yoff
d032bf5c0e
Merge pull request #13685 from RasmusWL/captured-variables-default-param-value
...
Python: Model parameter with default value as `DefinitionNode`
2023-07-17 14:25:13 +02:00
Rasmus Wriedt Larsen
6f3cb67050
Python: Model parameter with default value as DefinitionNode
2023-07-07 11:54:50 +02:00
Rasmus Wriedt Larsen
bea07002d3
Python: Expand captured-variable test with default param
2023-07-06 17:21:29 +02:00
Jeroen Ketema
abe06e5b95
Python: Update remaining inline expectation tests to use the paramterized module
2023-07-03 10:22:35 +02:00
Rasmus Wriedt Larsen
257f9912dd
Python: Remove one more unnecessary taint test
2023-06-26 12:00:55 +02:00
Rasmus Wriedt Larsen
6cb03190fa
Python: Updates from inline test being parameterized
2023-06-26 11:43:51 +02:00
Rasmus Wriedt Larsen
0121263e03
Merge branch 'main' into python/enable-summaries-from-models
2023-06-26 11:34:12 +02:00
Rasmus Lerchedahl Petersen
86dfc7b66e
python: format
2023-06-23 08:18:06 +02:00
Rasmus Lerchedahl Petersen
2264b119a6
python: more consistent tests
...
- do not test taint flow whne dataflow is established
- test taint of both the collection and the expected element
2023-06-22 11:52:25 +02:00
yoff
0f8ebd1519
Update python/ql/test/experimental/dataflow/model-summaries/model_summaries.py
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2023-06-22 11:31:21 +02:00
Jeroen Ketema
277dbdf410
Merge pull request #13498 from jketema/inline-4
...
Rework more inline expectation tests to use the parameterized module
2023-06-22 10:01:07 +02:00
Rasmus Lerchedahl Petersen
cb2de69f5a
python: consolidate tests
...
also change `Foo` -> `foo`
2023-06-20 16:13:38 +02:00
yoff
579c56c744
Merge pull request #13178 from yoff/python-ruby/track-through-summaries-pm
...
ruby/python: Shared module for typetracking through flow summaries
2023-06-20 11:19:45 +02:00
Rasmus Lerchedahl Petersen
e111a19524
python: split tests into taint and value
...
and add summaries
2023-06-20 10:46:27 +02:00
Jeroen Ketema
dba4460526
Python: Update more inline expectation tests to use the paramterized module
2023-06-20 10:16:15 +02:00
Rasmus Lerchedahl Petersen
229641070f
python: rename summaries
2023-06-18 22:01:47 +02:00
Rasmus Lerchedahl Petersen
6554e804dd
python: add test for model summaries
...
(but no summaries yet)
2023-06-18 21:52:49 +02:00
Rasmus Wriedt Larsen
fb6955edf9
Python: Add tests of methods in summaries
2023-06-16 14:43:45 +02:00
Rasmus Lerchedahl Petersen
b7bf750174
python: use updated names in test
2023-06-14 22:23:21 +02:00
Rasmus Lerchedahl Petersen
6521a51d93
python: unique strings in tests
2023-06-14 21:14:50 +02:00
Rasmus Lerchedahl Petersen
4b4b9bf9da
python: add missing summaries
...
For append/add:
The new results in the experimental tar slip query
show that we do not recognize the sanitisers.
2023-06-13 20:22:21 +02:00
Rasmus Lerchedahl Petersen
b72c93ff4f
python: remove remaining explicit taint steps
2023-06-13 20:22:20 +02:00
yoff
1d65284011
Merge pull request #13209 from yoff/python/container-summaries-2
...
python: Container summaries, part 2
2023-06-13 18:17:09 +02:00
Rasmus Wriedt Larsen
2b7fc94aef
Python: Fix validTest.py expectation
2023-06-13 12:11:28 +02:00
yoff
8cae151883
Update python/ql/test/experimental/dataflow/typetracking-summaries/TestSummaries.qll
...
Co-authored-by: Asger F <asgerf@github.com >
2023-06-13 11:22:54 +02:00
Rasmus Lerchedahl Petersen
b709ed47e1
python: add test
2023-06-13 11:20:15 +02:00
Jeroen Ketema
8f599faf85
Python: Rewrite inline expectation tests to use parameterized module
2023-06-09 10:42:29 +02:00
Rasmus Lerchedahl Petersen
2daa9577bb
ruby/python: implement shared module
...
ruby:
- create new shared file `SummaryTypeTracker.qll`
- move much logic into the module
- instantiate the module
- remove old logic, now provided by module
python:
- clone shared file
- instantiate module
- use (some of the) steps provided by the module
2023-05-30 13:31:24 +02:00
Rasmus Lerchedahl Petersen
47b2d48da2
python: add tests
...
- add `getACallSimple` to `SummarizedCallable`
(by adding it to `LibraryCallable`)
2023-05-30 13:16:04 +02:00