def test_import_from_alias(self): src = """\ from my_module import a, b b.foo() """ tree = ast.parse(src) self.assertItemsEqual(import_utils.get_unused_import_aliases(tree), [tree.body[0].names[0]])
def test_normal_imports(self): src = """\ import a import b a.foo() """ tree = ast.parse(src) self.assertItemsEqual(import_utils.get_unused_import_aliases(tree), [tree.body[1].names[0]])
def test_import_asname(self): src = """\ from my_module import a as a_mod, b as unused_b_mod import c as c_mod, d as unused_d_mod a_mod.foo() c_mod.foo() """ tree = ast.parse(src) self.assertItemsEqual(import_utils.get_unused_import_aliases(tree), [tree.body[0].names[1], tree.body[1].names[1]])
def test_dynamic_import(self): # For now we just don't want to error out on these, longer # term we want to do the right thing (see # https://github.com/google/pasta/issues/32) src = """\ def foo(): import bar """ tree = ast.parse(src) self.assertItemsEqual(import_utils.get_unused_import_aliases(tree), [])
def test_import_from(self): src = """\ from my_module import a import b from my_module import c b.foo() c.bar() """ tree = pasta.ast_parse(src, py_ver) self.assertItemsEqual( import_utils.get_unused_import_aliases(tree, py_ver), [tree.body[0].names[0]])