summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--isort/core.py2
-rw-r--r--tests/unit/test_ticketed_features.py13
2 files changed, 14 insertions, 1 deletions
diff --git a/isort/core.py b/isort/core.py
index d91aec5f..78e0a1c0 100644
--- a/isort/core.py
+++ b/isort/core.py
@@ -355,7 +355,7 @@ def process(
next_import_section = ""
if import_section:
- if add_imports and not indent:
+ if add_imports and (contains_imports or not config.append_only) and not indent:
import_section = (
line_separator.join(add_imports) + line_separator + import_section
)
diff --git a/tests/unit/test_ticketed_features.py b/tests/unit/test_ticketed_features.py
index dde08be6..ca39c0f9 100644
--- a/tests/unit/test_ticketed_features.py
+++ b/tests/unit/test_ticketed_features.py
@@ -213,6 +213,19 @@ import os
"""
)
+ # issue 1838: don't append in middle of class
+ assert isort.check_code(
+ '''class C:
+ """a
+
+ """
+ # comment
+''',
+ append_only=True,
+ add_imports=["from __future__ import annotations"],
+ show_diff=True,
+ )
+
def test_isort_supports_shared_profiles_issue_970():
"""Test to ensure isort provides a way to use shared profiles.