diff --git a/python/helpers/pycharm/utrunner.py b/python/helpers/pycharm/utrunner.py index 60720a7eae76..8d7ac8967193 100644 --- a/python/helpers/pycharm/utrunner.py +++ b/python/helpers/pycharm/utrunner.py @@ -65,12 +65,13 @@ def loadModulesFromFolderUsingPattern(folder, pattern): ''' loads modules from folder , check if module name matches given pattern''' modules = loadModulesFromFolderRec(folder) - result = [] - prog = re.compile(pattern) + prog_list = [re.compile(pat.strip()) for pat in pattern.split(',')] + result = [] for module in modules: - if prog.match(module.__name__): - result.append(module) + for prog in prog_list: + if prog.match(module.__name__): + result.append(module) return result if __name__ == "__main__": diff --git a/python/src/com/jetbrains/python/actions/UnresolvedRefCreateFunctionQuickFix.java b/python/src/com/jetbrains/python/actions/UnresolvedRefCreateFunctionQuickFix.java index 444a00f7faf5..55c2176b4aad 100644 --- a/python/src/com/jetbrains/python/actions/UnresolvedRefCreateFunctionQuickFix.java +++ b/python/src/com/jetbrains/python/actions/UnresolvedRefCreateFunctionQuickFix.java @@ -61,12 +61,13 @@ public class UnresolvedRefCreateFunctionQuickFix implements LocalQuickFix { if (parentFunction != null ) { PsiFile file = myElement.getContainingFile(); function = (PyFunction)file.addBefore(function, parentFunction); - } - PyStatement statement = PsiTreeUtil.getParentOfType(myElement, PyStatement.class); - if (statement != null) { - PsiElement parent = statement.getParent(); - if (parent != null) - function = (PyFunction)parent.addBefore(function, statement); + } else { + PyStatement statement = PsiTreeUtil.getParentOfType(myElement, PyStatement.class); + if (statement != null) { + PsiElement parent = statement.getParent(); + if (parent != null) + function = (PyFunction)parent.addBefore(function, statement); + } } function = CodeInsightUtilBase.forcePsiPostprocessAndRestoreElement(function); final TemplateBuilder builder = TemplateBuilderFactory.getInstance().createTemplateBuilder(function); diff --git a/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java b/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java index 19559e0464bd..cc075cb2e953 100644 --- a/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java @@ -123,6 +123,12 @@ public class PyUnresolvedReferencesInspection extends PyInspection { public void visitPyImportElement(PyImportElement node) { super.visitPyImportElement(node); final PyFromImportStatement fromImport = PsiTreeUtil.getParentOfType(node, PyFromImportStatement.class); + PsiFile file = node.getContainingFile(); + String fileNameWithExt = file.getName(); + String fileName = fileNameWithExt.substring(0, fileNameWithExt.length() - 3); + if (fromImport == null && fileName.equals(node.getText())) { + registerProblem(node, "Import resolves to its containing file."); + } if (fromImport == null || !fromImport.isFromFuture()) { myAllImports.add(node); }