def test_complex_expression(): source, pos = get_source_and_pos(''' module.func(param1, (param2,))(p1=10, m.p2| ''') result = get_context(source, pos) assert result == ('expr', 1, 'm', 'p2', '') source, pos = get_source_and_pos(''' module.func(param1, (param2,))(p1=10, p2=m.attr| ''') result = get_context(source, pos) assert result == ('expr', 1, 'm', 'attr', '')
def test_indented_import(): source, pos = get_source_and_pos(''' def foo(): import | ''') result = get_context(source, pos) assert result == ('import', 2, '', '', None)
def test_simple_expression_context(): source, pos = get_source_and_pos(''' module.attr| ''') result = get_context(source, pos) assert result == ('expr', 1, 'module', 'attr', '') source, pos = get_source_and_pos(''' package.module.attr| ''') result = get_context(source, pos) assert result == ('expr', 1, 'package.module', 'attr', '') source, pos = get_source_and_pos(''' module.func(param1, param2| ''') result = get_context(source, pos) assert result == ('expr', 1, '', 'param2', 'module.func')
def test_from_import_context(): source, pos = get_source_and_pos(''' from package import module| ''') result = get_context(source, pos) assert result == ('from-import', 1, 'package', 'module', None) source, pos = get_source_and_pos(''' from . import module| ''') result = get_context(source, pos) assert result == ('from-import', 1, '.', 'module', None) source, pos = get_source_and_pos(''' from ..package import module1, module2| ''') result = get_context(source, pos) assert result == ('from-import', 1, '..package', 'module2', None)
def test_from_context(): source, pos = get_source_and_pos(''' from package| ''') result = get_context(source, pos) assert result == ('import', 1, '', 'package', None) source, pos = get_source_and_pos(''' from package.module| ''') result = get_context(source, pos) assert result == ('import', 1, 'package', 'module', None) source, pos = get_source_and_pos(''' from ..package.module| ''') result = get_context(source, pos) assert result == ('import', 1, '..package', 'module', None)
def test_import_context(): source, pos = get_source_and_pos(''' import | ''') result = get_context(source, pos) assert result == ('import', 1, '', '', None) source, pos = get_source_and_pos(''' import package| ''') result = get_context(source, pos) assert result == ('import', 1, '', 'package', None) source, pos = get_source_and_pos(''' import package.module| ''') result = get_context(source, pos) assert result == ('import', 1, 'package', 'module', None) source, pos = get_source_and_pos(''' import package.module.submodule| ''') result = get_context(source, pos) assert result == ('import', 1, 'package.module', 'submodule', None) source, pos = get_source_and_pos(''' import package1.module1, package2.module2| ''') result = get_context(source, pos) assert result == ('import', 1, 'package2', 'module2', None) source, pos = get_source_and_pos(''' import (package1.module1, package2.module2| ''') result = get_context(source, pos) assert result == ('import', 2, 'package2', 'module2', None) source, pos = get_source_and_pos(''' import package1.module1, \\ package2.module2| ''') result = get_context(source, pos) assert result == ('import', 2, 'package2', 'module2', None)
def test_dotted_func_call_context(): source, pos = get_source_and_pos(''' Foo().foo(param1| ''') result = get_context(source, pos) assert result == ('expr', 1, '', 'param1', 'Foo().foo')
def test_expression_without_func_name(): source, pos = get_source_and_pos(''' (param1, (param2,)).attr| ''') result = get_context(source, pos) assert result == ('expr', 1, '(param1,(param2,))', 'attr', '')
def test_expression_context_with_func_ctx_break(): source, pos = get_source_and_pos(''' module.func(param1, (package.param2| ''') result = get_context(source, pos) assert result == ('expr', 1, 'package', 'param2', '')