diff --git a/python/python-psi-impl/src/com/jetbrains/python/refactoring/classes/PyClassRefactoringUtil.java b/python/python-psi-impl/src/com/jetbrains/python/refactoring/classes/PyClassRefactoringUtil.java index 0b1630a85694..3258ee071e29 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/refactoring/classes/PyClassRefactoringUtil.java +++ b/python/python-psi-impl/src/com/jetbrains/python/refactoring/classes/PyClassRefactoringUtil.java @@ -278,9 +278,9 @@ public final class PyClassRefactoringUtil { boolean preferFromImport = useFromImport != null ? useFromImport : true; boolean isUsedAsQualifier = sourceNode.getParent() instanceof PyQualifiedExpression && ((PyQualifiedExpression)sourceNode.getParent()).getQualifier() == sourceNode; - boolean shouldQualifyReference = target instanceof PyFile && - PyCodeInsightSettings.getInstance().PREFER_FROM_IMPORT && - useFromImport != null && useFromImport && + boolean shouldQualifyReference = target instanceof PyFile && + !PyCodeInsightSettings.getInstance().PREFER_FROM_IMPORT && + useFromImport != null && useFromImport && asName == null && !isUsedAsQualifier; if (shouldQualifyReference) { diff --git a/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/__init__.py b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/dst.py b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/dst.py new file mode 100644 index 000000000000..10d79117933f --- /dev/null +++ b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/dst.py @@ -0,0 +1,5 @@ +from lib import mod + + +def usage(): + mod diff --git a/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/mod.py b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/mod.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/src.py b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/src.py new file mode 100644 index 000000000000..139597f9cb07 --- /dev/null +++ b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/after/src/lib/src.py @@ -0,0 +1,2 @@ + + diff --git a/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/__init__.py b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/dst.py b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/dst.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/mod.py b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/mod.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/src.py b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/src.py new file mode 100644 index 000000000000..4ebfa84010aa --- /dev/null +++ b/python/testData/refactoring/move/importForMovedElementWithPreferredFromImportStyleModule/before/src/lib/src.py @@ -0,0 +1,4 @@ +from lib import mod + +def usage(): + mod \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java b/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java index bc8ec38f7546..73b1a4c2c9ee 100644 --- a/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java +++ b/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java @@ -287,7 +287,7 @@ public class PyMoveTest extends PyTestCase { public void testImportForMovedElementWithPreferredQualifiedImportStyleModule() { final boolean defaultImportStyle = PyCodeInsightSettings.getInstance().PREFER_FROM_IMPORT; try { - PyCodeInsightSettings.getInstance().PREFER_FROM_IMPORT = true; + PyCodeInsightSettings.getInstance().PREFER_FROM_IMPORT = false; doMoveSymbolTest("usage", "lib/dst.py"); } finally { @@ -295,6 +295,11 @@ public class PyMoveTest extends PyTestCase { } } + @TestFor(issues="PY-6591") + public void testImportForMovedElementWithPreferredFromImportStyleModule() { + doMoveSymbolTest("usage", "lib/dst.py"); + } + @TestFor(issues="PY-84659") public void testQualifiedUsageRespectsPreferFromImport() { final boolean defaultImportStyle = PyCodeInsightSettings.getInstance().PREFER_FROM_IMPORT;