diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/resolve/PyNamespacePackageUtil.kt b/python/python-psi-impl/src/com/jetbrains/python/psi/resolve/PyNamespacePackageUtil.kt index 2fb953d80726..1ecf92334eec 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/resolve/PyNamespacePackageUtil.kt +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/resolve/PyNamespacePackageUtil.kt @@ -41,6 +41,7 @@ fun isNamespacePackage(element: PsiElement): Boolean { fun isInNamespacePackage(element: PsiElement): Boolean { val myFile = element.containingFile ?: return false val parentDirectory = myFile.containingDirectory + if (parentDirectory.virtualFile in PyUtil.getSourceRoots(element)) return false return parentDirectory != null && isNamespacePackage(parentDirectory) } diff --git a/python/testData/refactoring/extractsuperclass/multifileNew/after/__init__.py b/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/main.py similarity index 100% rename from python/testData/refactoring/extractsuperclass/multifileNew/after/__init__.py rename to python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/main.py diff --git a/python/testData/refactoring/extractsuperclass/multifileNew/before/__init__.py b/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/pkg/__init__.py similarity index 100% rename from python/testData/refactoring/extractsuperclass/multifileNew/before/__init__.py rename to python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/pkg/__init__.py diff --git a/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/pkg/subpkg/__init__.py b/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/pkg/subpkg/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/pkg/subpkg/b.py b/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/pkg/subpkg/b.py new file mode 100644 index 000000000000..07d9e0efebfa --- /dev/null +++ b/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/after/src/pkg/subpkg/b.py @@ -0,0 +1,2 @@ +class MyClass: + pass diff --git a/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/before/src/main.py b/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/before/src/main.py new file mode 100644 index 000000000000..1dea43b79188 --- /dev/null +++ b/python/testData/refactoring/move/moveSymbolFromTopLevelModuleToNewPackageCreatesInitPy/before/src/main.py @@ -0,0 +1,2 @@ +class MyClass: + pass \ 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 710eab0b22a4..ef23ffde9920 100644 --- a/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java +++ b/python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java @@ -427,6 +427,12 @@ public class PyMoveTest extends PyTestCase { }); } + public void testMoveSymbolFromTopLevelModuleToNewPackageCreatesInitPy() { + doComparingDirectories(testDir -> { + moveSymbols(testDir, "pkg/subpkg/b.py", "MyClass"); + }); + } + //PY-44858 public void testMoveNotCreateInitPyForNamespacePackagesToAnotherDirectory() { doMoveSymbolsTest("pkg/subpkg/B/module_b.py", "myfunc");