From 9ffa36ab6024899bbeb8db827c69afb4626fdf40 Mon Sep 17 00:00:00 2001 From: Matt Yule-Bennett Date: Wed, 19 Jun 2019 17:37:21 +0100 Subject: Merge in fix for issue #957 --- isort/isort.py | 16 +++++++++------- test_isort.py | 23 +++++++++++++++++++++++ 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/isort/isort.py b/isort/isort.py index 08d18af5..50254ac8 100644 --- a/isort/isort.py +++ b/isort/isort.py @@ -380,13 +380,15 @@ class SortImports(object): cont_line = self._wrap(self.config['indent'] + splitter.join(next_line).lstrip()) if self.config['use_parentheses']: - output = "{0}{1}({2}{3}{4}{5})".format( - line, splitter, self.line_separator, cont_line, - "," if self.config['include_trailing_comma'] else "", - self.line_separator if wrap_mode in ( - settings.WrapModes.VERTICAL_HANGING_INDENT, - settings.WrapModes.VERTICAL_GRID_GROUPED, - ) else "") + if splitter == "as ": + output = "{0}{1}{2}".format(line, splitter, cont_line.lstrip()) + else: + output = "{0}{1}({2}{3}{4}{5})".format( + line, splitter, self.line_separator, cont_line, + "," if self.config['include_trailing_comma'] else "", + self.line_separator if wrap_mode in (WrapModes.VERTICAL_HANGING_INDENT, + WrapModes.VERTICAL_GRID_GROUPED) + else "") lines = output.split(self.line_separator) if self.config['comment_prefix'] in lines[-1] and lines[-1].endswith(')'): line, comment = lines[-1].split(self.config['comment_prefix'], 1) diff --git a/test_isort.py b/test_isort.py index 911a5b5e..2eeebfb6 100644 --- a/test_isort.py +++ b/test_isort.py @@ -2192,6 +2192,29 @@ def test_alias_using_paren_issue_466(): use_parentheses=True).output == expected_output +def test_long_alias_using_paren_issue_957(): + test_input = ('from package import module as very_very_very_very_very_very_very_very_very_very_long_alias\n') + expected_output = ('from package import (\n' + ' module as very_very_very_very_very_very_very_very_very_very_long_alias\n' + ')\n') + out = SortImports(file_contents=test_input, line_length=50, use_parentheses=True, multi_line_output=WrapModes.VERTICAL_GRID_GROUPED, check=True).output + assert out == expected_output + + test_input = ('from deep.deep.deep.deep.deep.deep.deep.deep.deep.package import module as very_very_very_very_very_very_very_very_very_very_long_alias\n') + expected_output = ('from deep.deep.deep.deep.deep.deep.deep.deep.deep.package import (\n' + ' module as very_very_very_very_very_very_very_very_very_very_long_alias\n' + ')\n') + out = SortImports(file_contents=test_input, line_length=50, use_parentheses=True, multi_line_output=WrapModes.VERTICAL_GRID_GROUPED, check=True).output + assert out == expected_output + + test_input = ('from deep.deep.deep.deep.deep.deep.deep.deep.deep.package import very_very_very_very_very_very_very_very_very_very_long_module as very_very_very_very_very_very_very_very_very_very_long_alias\n') + expected_output = ('from deep.deep.deep.deep.deep.deep.deep.deep.deep.package import (\n' + ' very_very_very_very_very_very_very_very_very_very_long_module as very_very_very_very_very_very_very_very_very_very_long_alias\n' + ')\n') + out = SortImports(file_contents=test_input, line_length=50, use_parentheses=True, multi_line_output=WrapModes.VERTICAL_GRID_GROUPED, check=True).output + assert out == expected_output + + def test_strict_whitespace_by_default(capsys): test_input = ('import os\n' 'from django.conf import settings\n') -- cgit v1.2.1