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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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