Rasmus Lerchedahl Petersen
ad6ed2f629
python: update expectations
...
extra tests
2022-12-20 13:01:27 +01:00
yoff
5f0cde5be7
Merge branch 'main' into python/support-grouped-exceptions
2022-12-19 13:38:25 +01:00
Rasmus Lerchedahl Petersen
997e3599f0
python: make tests valid and more fleshed out
2022-12-15 12:54:16 +01:00
Rasmus Lerchedahl Petersen
8e8d36f35e
python: this also works in 3.11
2022-12-15 12:54:14 +01:00
Rasmus Lerchedahl Petersen
3ace1ee69f
Python: remove obsolete coments
2022-12-15 12:54:13 +01:00
Tom Hvitved
39fea378b8
Python: Update expected test output
2022-12-13 09:53:01 +01:00
ALJI Mohamed
9336f4f1a2
Considering the use of contextlib.closing() method
2022-12-08 12:26:59 +01:00
Rasmus Wriedt Larsen
a826c4f48b
Merge branch 'main' into call-graph-code
2022-12-08 11:39:30 +01:00
ALJI Mohamed
68fd75ca34
UnpackUnsafe query and tests
2022-12-05 17:20:22 +01:00
Tom Hvitved
8f701cf1cb
Python: Update expected test output
2022-12-05 14:33:06 +01:00
Rasmus Wriedt Larsen
5866af413f
Merge pull request #11347 from tausbn/python-clean-up-import-resolution
...
Python: Add change note for module resolution
2022-11-22 15:28:38 +01:00
Rasmus Wriedt Larsen
00ec3a23ba
Python: Accept fix from module-resolution PR
2022-11-22 14:46:33 +01:00
Rasmus Wriedt Larsen
ee2f7401e8
Python: Add generator-flow/dataflow-consistency.ql
2022-11-22 14:46:33 +01:00
Rasmus Wriedt Larsen
8de5cfef43
Python: Update dataflow-consistency.expected
...
After merging in main
2022-11-22 14:46:33 +01:00
Rasmus Wriedt Larsen
c0ad870949
Python: Exclude synthetic generator functions from DataFlowCallable
2022-11-22 14:46:33 +01:00
Rasmus Wriedt Larsen
d86f98d60b
Python: Accept changes for enclosing-callable test
2022-11-22 14:46:33 +01:00
Rasmus Wriedt Larsen
aa382ac042
Python: Add test for strange generator taint flow
...
I did check, and this was not a problem with the old call-graph on main!
I'm absolutely baffled!
2022-11-22 14:46:33 +01:00
Rasmus Wriedt Larsen
df4d09b3f9
Python: Don't rely on all DataFlowCall being resolved
...
I've been living dangerously with that assumption :|
2022-11-22 14:46:32 +01:00
Rasmus Wriedt Larsen
c4122275dc
Python: Bring back support for flow-summaries
...
Also needed to fix up `TestUtil/UnresolvedCalls.qll` after a bad merge
conflict resolution. Since all calls are now DataFlowCall, and not JUST
the ones that can be resolved, we need to put in the restriction that
the callable can also be resolved.
2022-11-22 14:46:32 +01:00
Rasmus Wriedt Larsen
e5fdeae6fc
Python: Add return (func_ref, ...) test
2022-11-22 14:46:32 +01:00
Rasmus Wriedt Larsen
fb0cc184d9
Python: Add test of multi func def based on runtime decision
2022-11-22 14:46:32 +01:00
Rasmus Wriedt Larsen
276a825cd0
Python: Allow same function name in call-graph tests
2022-11-22 14:46:32 +01:00
Rasmus Wriedt Larsen
8a56b48357
Python: Support super().__new__(cls)
2022-11-22 14:46:32 +01:00
Rasmus Wriedt Larsen
2b76964f7f
Python: Expand tests of __new__ a bit more
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
a4e6433942
Python: add support for type(self)()
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
d43a48c265
Python: Add type(self)() tests
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
16483f7d40
Python: Add funky call-graph regression
...
I don't even know how to phrase this :D
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
1e96ced3ab
Python: Ignore functions with @property decorator for now
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
cba93ded77
Python: Add test for @property problem
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
b33f02f9dc
Python: Fix self-passing problems
...
This also fixes performance problems for pandas-dev/pandas
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
722c69edcc
Python: Add test showing self type-tracking problems
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
5e5bab5a7c
Python: Don't pass synthetic class instance to __new__ on class calls
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
6fefd54533
Python: Consider __new__ a classmethod
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
f040ad8dac
Python: Add test of __new__ handling
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
57c7dc8ea9
Python: Allow cls passing to classmethod
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
0cf13e9976
Python: Expand argument highlighting test
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
4416037dc6
Python: Ignore SPURIOUS call-graph edges in points-to vs. type-tracker results
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
6351defe0d
Python: Add call-graph tests with isinstance
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
5fc127cb2c
Python: Make UnresolvedCalls.qll handle class calls without __init__
...
This commit used to make sense to have here in the ordering of commits,
but due to various rebases it no longer changes any test output..
it's still a good change though, so I'll keep it.
2022-11-22 14:46:31 +01:00
Rasmus Wriedt Larsen
98a849405f
Python: Add support for late *args arguments
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
035d083515
Python: Support flow to *args param from positional arg
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
db921ac036
Python: Add basic support for *args
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
b6314dd19d
Python: Add *args tests
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
c687df4ddc
Python: Support flow to keyword param from **kwargs arg
...
When resolving merge conflict after flow-summaries was merged, this is
the original commit where I introduced ParameterNodeImpl, so this is the
commit where differences in that implementation was committed...
I removed TParameterNode, since I could not see we we gain anything from
having it.
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
215a03d948
Python: Support flow to **kwargs param from keyword arg
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
503ad544e9
Python: Remove impossible flow for **kwargs params
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
eb600f07b7
Python: Use config for dataflow-consistency.ql
...
And ignore post-update nodes for `**kwargs` arguments
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
5722d231bd
Python: Add basic support for **kwargs
...
For now this is JUST from `**kwargs` in arguments, to `**kwargs`
parameters, and this part is based on field-flow
Note that dataflow-library complains about missing post update nodes for
these. This needs to be ignored, since post update nodes for `**kwargs`
arguments doesn't make sense, it's not possible to alter the dictionary
inside the method.
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
9b2663034d
Python: Change test .ql to also show bad argument flow
2022-11-22 14:46:30 +01:00
Rasmus Wriedt Larsen
5a976cfb14
Python: Add more **kwargs arg passing tests
2022-11-22 14:46:30 +01:00