示例#1
0
def test_find_missing_imports_complex_1():
    code = dedent("""
        x = 3+4j+5L+k+u'a'
    """)
    result = find_missing_imports(code, [{}])
    expected = ['k']
    assert expected == result
示例#2
0
def test_find_missing_imports_code_args_1():
    def f(x, y, *a, **k):
        return g(x, y, z, a, k)

    result = find_missing_imports(f.func_code, [{}])
    expected = ['g', 'z']
    assert expected == result
示例#3
0
def test_find_missing_imports_print_function_1():
    node = ast.parse("from __future__ import print_function\n"
                     "print (42, file=sys.stdout)\n")
    result = find_missing_imports(node, [{}])
    result = _dilist2strlist(result)
    expected = ['sys.stdout']
    assert expected == result
示例#4
0
def test_find_missing_imports_code_use_after_import_1():
    def f():
        import foo
        foo.bar()

    result = find_missing_imports(f.func_code, [{}])
    expected = []
    assert expected == result
示例#5
0
def test_find_missing_imports_function_defaults_kwargs_1():
    code = dedent("""
        def func16049151(x=args, y=kwargs, z=y, *args, **kwargs):
            pass
    """)
    result = find_missing_imports(code, [{}])
    expected = ['args', 'kwargs', 'y']
    assert expected == result
示例#6
0
def test_find_missing_imports_latedef_lambda_1():
    code = dedent("""
        granite = lambda x: x + y + z
        z = 100
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y']
    assert expected == result
示例#7
0
def test_find_missing_imports_class_member_function_ref_1():
    code = dedent("""
        class Niska(object):
            def f1(self): pass
            g = f1, f2
    """)
    result = find_missing_imports(code, [{}])
    expected = ['f2']
    assert expected == result
示例#8
0
def test_find_missing_imports_class_scope_comprehension_1():
    code = dedent("""
        class Plymouth:
            x = []
            z = list(1 for t in x+y)
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y']
    assert expected == result
示例#9
0
def test_find_missing_imports_delattr_1():
    code = dedent("""
        foo1 = 1
        del foo1.bar, foo2.bar
    """)
    result = find_missing_imports(code, [{}])
    result = _dilist2strlist(result)
    expected = ['foo2']
    assert expected == result
示例#10
0
def test_find_missing_imports_class_members_1():
    code = dedent("""
        class Kenosha(object):
            x = 3
            z = x, y
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y']
    assert expected == result
示例#11
0
def test_find_missing_imports_class_base_1():
    code = dedent("""
        Mill = object
        class Mohansic(Crom, Mill):
            pass
    """)
    result = find_missing_imports(code, [{}])
    expected = ['Crom']
    assert expected == result
示例#12
0
def test_find_missing_imports_delitem_lhs_1():
    code = dedent("""
        foo1 = 1
        del foo1[123], foo2[123]
    """)
    result = find_missing_imports(code, [{}])
    result = _dilist2strlist(result)
    expected = ['foo2']
    assert expected == result
示例#13
0
def test_find_missing_imports_function_defaults_1():
    code = dedent("""
        e = 1
        def func32466773(a=b, b=c, c=a, d=d, e=e, f=1):
            pass
    """)
    result = find_missing_imports(code, [{}])
    expected = ['a', 'b', 'c', 'd']
    assert expected == result
示例#14
0
def test_find_missing_imports_latedef_def_1():
    code = dedent("""
        def marble(x):
            return x + y + z
        z = 100
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y']
    assert expected == result
示例#15
0
def test_find_missing_imports_function_body_1():
    code = dedent("""
        x1 = 1
        def func59399065():
            return x1 + x2 + x3
        x3 = 3
    """)
    result = find_missing_imports(code, [{}])
    expected = ['x2']
    assert expected == result
示例#16
0
def test_find_missing_imports_function_paramlist_lambda_1():
    code = dedent("""
        X1 = 1
        def func85025862(x1=lambda: 1/X1, x2=lambda: 1/X2, x3=lambda: 1/X3):
            return x1() + x2() + x3()
        X3 = 3
    """)
    result = find_missing_imports(code, [{}])
    expected = ['X2']
    assert expected == result
示例#17
0
def test_find_missing_imports_function_paramlist_selfref_1():
    code = dedent("""
        f1 = 'x'
        def f2(g1=f1, g2=f2, g3=f3):
            return (g1, g2, g3)
        f3 = 'x'
    """)
    result = find_missing_imports(code, [{}])
    expected = ['f2', 'f3']
    assert expected == result
示例#18
0
def test_find_missing_imports_function_defaults_kwargs_2():
    code = dedent("""
        args = 1
        kwargs = 2
        def func69790319(x=args, y=kwargs, z=y, *args, **kwargs):
            pass
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y']
    assert expected == result
示例#19
0
def test_find_missing_imports_function_paramlist_1():
    code = dedent("""
        X1 = 1
        def func85025862(x1=X1, x2=X2, x3=X3):
            return x1 + x2 + x3
        X3 = 3
    """)
    result = find_missing_imports(code, [{}])
    expected = ['X2', 'X3']
    assert expected == result
示例#20
0
def test_find_missing_imports_class_member_vs_function_1():
    code = dedent("""
        class Sidney(object):
            x = 3
            def barracuda(self):
                return x, y
    """)
    result = find_missing_imports(code, [{}])
    expected = ['x', 'y']
    assert expected == result
示例#21
0
def test_find_missing_imports_assignment_1():
    code = dedent("""
        def f():
            x = 1
            print x, y, z
            y = 2
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y', 'z']
    assert expected == result
示例#22
0
def test_find_missing_imports_global_1():
    code = dedent("""
        def func10663671():
            global x
            x = x + y
        x = 1
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y']
    assert expected == result
示例#23
0
def test_find_missing_imports_delitem_rhs_1():
    code = dedent("""
        foo1 = 1
        bar1 = 1
        del foo1[bar1], foo1[bar2]
    """)
    result = find_missing_imports(code, [{}])
    result = _dilist2strlist(result)
    expected = ['bar2']
    assert expected == result
示例#24
0
def test_find_missing_imports_latedef_def_def_1():
    code = dedent("""
        def twodot():
            return sterling() + haymaker() + cannon() + twodot()
        def haymaker():
            return 100
    """)
    result = find_missing_imports(code, [{}])
    expected = ['cannon', 'sterling']
    assert expected == result
示例#25
0
def test_find_missing_imports_class_member_vs_paramlist_1():
    code = dedent("""
        class Drake:
            duck2 = 2
            def quack(self, mallard1=duck1, mallard2=duck2, mallard3=duck3):
                pass
            duck3 = 3
    """)
    result = find_missing_imports(code, [{}])
    expected = ['duck1', 'duck3']
    assert expected == result
示例#26
0
def test_find_missing_imports_classdef_1():
    code = dedent("""
        class Mahopac:
            pass
        class Gleneida(Mahopac):
            pass
        Mahopac, Carmel, Gleneida
    """)
    result = find_missing_imports(code, [{}])
    expected = ['Carmel']
    assert expected == result
示例#27
0
def test_find_missing_imports_class_member_vs_function_2():
    code = dedent("""
        class Wayne: pass
        class Connaught(object):
            class Windsor: pass
            def Mercury(self):
                return Wayne, Connaught, Windsor
    """)
    result = find_missing_imports(code, [{}])
    expected = ['Windsor']
    assert expected == result
示例#28
0
def test_find_missing_imports_latedef_if_1():
    code = dedent("""
        if 1:
            def cavalier():
                x, y
        if 1:
            x = 1
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y']
    assert expected == result
示例#29
0
def test_find_missing_imports_latedef_innerdef_1():
    code = dedent("""
        def kichawan(w):
            def turkey(x):
                return v + w + x + y + z
            z = 100
        v = 200
    """)
    result = find_missing_imports(code, [{}])
    expected = ['y']
    assert expected == result
示例#30
0
def test_find_missing_imports_inner_class_attribute_1():
    code = dedent("""
        x = 100
        class Axel(object):
            a = 100
            class Beth:
                b = x + a
    """)
    result = find_missing_imports(code, [{}])
    expected = ['a']
    assert expected == result