mirror of
https://github.com/github/codeql.git
synced 2025-12-28 14:46:33 +01:00
In lieu of removing the offending flow (which would likely have consequences for a lot of other tests), I opted to simply _include_ the relevant nodes directly.
82 lines
2.8 KiB
Python
82 lines
2.8 KiB
Python
import a1 #$ use=moduleImport("a1")
|
|
|
|
x = a1.blah1 #$ use=moduleImport("a1").getMember("blah1")
|
|
|
|
import a2 as m2 #$ use=moduleImport("a2")
|
|
|
|
x2 = m2.blah2 #$ use=moduleImport("a2").getMember("blah2")
|
|
|
|
import a3.b3 as m3 #$ use=moduleImport("a3").getMember("b3")
|
|
|
|
x3 = m3.blah3 #$ use=moduleImport("a3").getMember("b3").getMember("blah3")
|
|
|
|
from a4.b4 import c4 as m4 #$ use=moduleImport("a4").getMember("b4").getMember("c4")
|
|
|
|
x4 = m4.blah4 #$ use=moduleImport("a4").getMember("b4").getMember("c4").getMember("blah4")
|
|
|
|
import a.b.c.d #$ use=moduleImport("a")
|
|
|
|
ab = a.b #$ use=moduleImport("a").getMember("b")
|
|
|
|
abc = ab.c #$ use=moduleImport("a").getMember("b").getMember("c")
|
|
|
|
abcd = abc.d #$ use=moduleImport("a").getMember("b").getMember("c").getMember("d")
|
|
|
|
x5 = abcd.method() #$ use=moduleImport("a").getMember("b").getMember("c").getMember("d").getMember("method").getReturn()
|
|
|
|
from a6 import m6 #$ use=moduleImport("a6").getMember("m6")
|
|
|
|
x6 = m6().foo().bar() #$ use=moduleImport("a6").getMember("m6").getReturn().getMember("foo").getReturn().getMember("bar").getReturn()
|
|
|
|
import foo.baz.baz as fbb #$ use=moduleImport("foo").getMember("baz").getMember("baz")
|
|
from foo.bar.baz import quux as fbbq #$ use=moduleImport("foo").getMember("bar").getMember("baz").getMember("quux")
|
|
from ham.bar.eggs import spam as hbes #$ use=moduleImport("ham").getMember("bar").getMember("eggs").getMember("spam")
|
|
fbb.quux #$ use=moduleImport("foo").getMember("baz").getMember("baz").getMember("quux")
|
|
fbbq #$ use=moduleImport("foo").getMember("bar").getMember("baz").getMember("quux")
|
|
hbes #$ use=moduleImport("ham").getMember("bar").getMember("eggs").getMember("spam")
|
|
|
|
import foo.bar.baz #$ use=moduleImport("foo")
|
|
|
|
# Relative imports. These are ignored
|
|
|
|
from .foo import bar
|
|
|
|
from ..foobar import baz
|
|
|
|
|
|
# Use of imports across scopes
|
|
|
|
def use_m4():
|
|
x = m4.blah4 #$ use=moduleImport("a4").getMember("b4").getMember("c4").getMember("blah4")
|
|
|
|
def local_import_use():
|
|
from foo import bar #$ use=moduleImport("foo").getMember("bar")
|
|
|
|
x = bar() #$ use=moduleImport("foo").getMember("bar").getReturn()
|
|
|
|
from eggs import ham as spam #$ use=moduleImport("eggs").getMember("ham")
|
|
|
|
def bbb():
|
|
f = spam #$ use=moduleImport("eggs").getMember("ham")
|
|
|
|
from danger import SOURCE #$ use=moduleImport("danger").getMember("SOURCE")
|
|
|
|
foo = SOURCE #$ use=moduleImport("danger").getMember("SOURCE")
|
|
|
|
def change_foo():
|
|
global foo
|
|
foo = SOURCE #$ use=moduleImport("danger").getMember("SOURCE")
|
|
|
|
def f():
|
|
global foo
|
|
sink(foo) #$ use=moduleImport("danger").getMember("SOURCE")
|
|
foo = NONSOURCE
|
|
change_foo()
|
|
sink(foo) #$ use=moduleImport("danger").getMember("SOURCE")
|
|
|
|
# Star imports
|
|
|
|
from unknown import * #$ use=moduleImport("unknown")
|
|
|
|
hello() #$ MISSING: use=moduleImport("unknown").getMember("hello").getReturn()
|