def test_fqdn_imports(self): simple = ast.alias(name="os", asname=None) assert pi.ImportedName("os", ast.Import(names=[simple]), simple).canonical_name == "os" module = ast.alias(name="os.path", asname=None) module_name = pi.ImportedName("os.path", ast.Import(names=[module]), module) assert module_name.canonical_name == "os.path" alias = ast.alias(name="os.path", asname="path") assert pi.ImportedName("path", ast.Import(names=[alias]), alias).canonical_name == "os.path"
def test_fqast_imports(self): simple = ast.alias(name="os", asname=None) node_ast = ast.dump(pi.ImportedName("os", ast.Import(names=[simple]), simple).canonical_ast) assert node_ast == "Name(id='os', ctx=Load())" module = ast.alias(name="os.path", asname=None) module_name = pi.ImportedName("os.path", ast.Import(names=[module]), module) module_ast = ast.dump(module_name.canonical_ast) assert module_ast == "Attribute(value=Name(id='os', ctx=Load()), attr='path', ctx=Load())" alias = ast.alias(name="os.path", asname="path") alias_ast = ast.dump( pi.ImportedName("path", ast.Import(names=[alias]), alias).canonical_ast ) assert alias_ast == "Attribute(value=Name(id='os', ctx=Load()), attr='path', ctx=Load())"
def test_fqdn_importfrom(self): # 'from os import path' simple = ast.alias(name="path", asname=None) simple_name = ast.ImportFrom(module="os", names=[simple]) assert pi.ImportedName("path", simple_name, simple).canonical_name == "os.path" module = ast.alias(name="four", asname=None) module_name = ast.ImportFrom(module="one.two.three", names=[module]) assert pi.ImportedName("four", module_name, module).canonical_name == "one.two.three.four" alias = ast.alias(name="fourth_module", asname="four") alias_name = ast.ImportFrom(module="one.two.three", names=[alias]) assert ( pi.ImportedName("four", alias_name, alias).canonical_name == "one.two.three.fourth_module" )
def test_import(self): alias = ast.alias(name="os.path", asname=None) name = pi.ImportedName("os.path", ast.Import(names=[alias]), alias) assert name.name == "os.path" assert name.node.names[0].name == "os.path" assert name.node.names[0].asname is None assert name.alias is alias assert name.is_import() assert not name.is_import_from()
def test_new_modules(self, change): change.add_new_modules({"os", "awsum"}) alias = ast.alias(name="path", asname=None) change.add_new( pi.ImportedName("path", ast.ImportFrom(module="os", level=0, names=[alias]), alias) ) assert change.new_modules == {"awsum", "os"} assert change.new change.delete_new_module("os") assert change.new_modules == {"awsum"} assert not change.new
def test_importfrom(self): alias = ast.alias(name="path", asname=None) name = pi.ImportedName("path", ast.ImportFrom(module="os", level=0, names=[alias]), alias) assert name.name == "path" assert name.node.module == "os" assert name.node.names[0].name == "path" assert name.node.names[0].asname is None assert name.node.level == 0 assert name.alias is alias assert not name.is_import() assert name.is_import_from()
def test_fqast_importfrom(self): simple = ast.alias(name="path", asname=None) simple_name = pi.ImportedName("path", ast.ImportFrom(module="os", names=[simple]), simple) simple_ast = ast.dump(simple_name.canonical_ast) assert simple_ast == "Attribute(value=Name(id='os', ctx=Load()), attr='path', ctx=Load())" module = ast.alias(name="four", asname=None) module_node = ast.ImportFrom(module="one.two.three", names=[module]) module_name = pi.ImportedName("four", module_node, module) module_ast = ast.dump(module_name.canonical_ast) assert ( module_ast == "Attribute(value=Attribute(value=Attribute(value=Name(id='one', ctx=Load()), attr='two', ctx=Load()), attr='three', ctx=Load()), attr='four', ctx=Load())" # pylint: disable=line-too-long ) alias = ast.alias(name="fourth_module", asname="four") alias_node = ast.ImportFrom(module="one.two.three", names=[alias]) alias_name = pi.ImportedName("four", alias_node, alias) alias_ast = ast.dump(alias_name.canonical_ast) assert ( alias_ast == "Attribute(value=Attribute(value=Attribute(value=Name(id='one', ctx=Load()), attr='two', ctx=Load()), attr='three', ctx=Load()), attr='fourth_module', ctx=Load())" # pylint: disable=line-too-long )
def test_removed(self, change): alias = ast.alias(name="path", asname=None) change.add_removed( pi.ImportedName("path", ast.ImportFrom(module="os", level=0, names=[alias]), alias) ) assert change.removed["os"] is not None