diff --git a/python/src/com/jetbrains/python/codeInsight/imports/AddImportHelper.java b/python/src/com/jetbrains/python/codeInsight/imports/AddImportHelper.java index c58972997246..f77c9ecea105 100644 --- a/python/src/com/jetbrains/python/codeInsight/imports/AddImportHelper.java +++ b/python/src/com/jetbrains/python/codeInsight/imports/AddImportHelper.java @@ -464,7 +464,7 @@ public class AddImportHelper { final PyElementGenerator generator = PyElementGenerator.getInstance(file.getProject()); final PyImportElement importElement = generator.createImportElement(LanguageLevel.forElement(file), name, asName); existingImport.add(importElement); - return false; + return true; } } addFromImportStatement(file, from, name, asName, priority, anchor); diff --git a/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/a.py b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/a.py new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/a.py @@ -0,0 +1 @@ + diff --git a/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/b.py b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/b.py new file mode 100644 index 000000000000..aff66937a907 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/b.py @@ -0,0 +1,6 @@ +class B: + pass + + +class A: + pass \ No newline at end of file diff --git a/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/importing.py b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/importing.py new file mode 100644 index 000000000000..1274b2423e53 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/after/src/importing.py @@ -0,0 +1,3 @@ +from b import B, A + +print(A(), B()) diff --git a/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/a.py b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/a.py new file mode 100644 index 000000000000..79a7eda2cd59 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/a.py @@ -0,0 +1,2 @@ +class A: + pass diff --git a/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/b.py b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/b.py new file mode 100644 index 000000000000..51a2e57f9490 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/b.py @@ -0,0 +1,2 @@ +class B: + pass diff --git a/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/importing.py b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/importing.py new file mode 100644 index 000000000000..2b4abacad1e5 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportRemovedWhenNewImportCombinedWithExistingImport/before/src/importing.py @@ -0,0 +1,4 @@ +from a import A +from b import B + +print(A(), B()) diff --git a/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/a.py b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/a.py new file mode 100644 index 000000000000..b28b04f64312 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/a.py @@ -0,0 +1,3 @@ + + + diff --git a/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/b.py b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/b.py new file mode 100644 index 000000000000..e4b5216fdb04 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/b.py @@ -0,0 +1,6 @@ +class A: + pass + + +class B: + pass \ No newline at end of file diff --git a/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/importing.py b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/importing.py new file mode 100644 index 000000000000..3708825b4ad3 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/after/src/importing.py @@ -0,0 +1,3 @@ +from b import A, B + +print(A(), B()) diff --git a/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/before/src/a.py b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/before/src/a.py new file mode 100644 index 000000000000..e4b5216fdb04 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/before/src/a.py @@ -0,0 +1,6 @@ +class A: + pass + + +class B: + pass \ No newline at end of file diff --git a/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/before/src/importing.py b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/before/src/importing.py new file mode 100644 index 000000000000..e16029695f46 --- /dev/null +++ b/python/testData/refactoring/move/staleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule/before/src/importing.py @@ -0,0 +1,3 @@ +from a import A, B + +print(A(), B()) diff --git a/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java b/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java index 21a0c0de7aed..f4997f0a84ce 100644 --- a/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java +++ b/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java @@ -361,6 +361,16 @@ public class PyMoveTest extends PyTestCase { doMoveSymbolTest("func", "b.py"); } + // PY-21292 + public void testStaleFromImportsRemovedWhenSeveralMovedSymbolsUsedInSameModule() { + doMoveSymbolsTest("b.py", "A", "B"); + } + + // PY-21292 + public void testStaleFromImportRemovedWhenNewImportCombinedWithExistingImport() { + doMoveSymbolTest("A", "b.py"); + } + private void doMoveFileTest(String fileName, String toDirName) { Project project = myFixture.getProject(); PsiManager manager = PsiManager.getInstance(project);