From 6ec35c62e95a31c31b1f14405ceb8e8c61979907 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 31 Aug 2012 18:18:56 +0200 Subject: [PATCH] use smarter, higher-level API for adding import elements to an import statement (PY-7400) --- .../codeInsight/imports/ImportFromExistingAction.java | 4 ++-- python/testData/addImport/parens.after.py | 1 + python/testData/addImport/parens.py | 1 + .../testSrc/com/jetbrains/python/PyAddImportTest.java | 11 +++++++++++ 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 python/testData/addImport/parens.after.py create mode 100644 python/testData/addImport/parens.py diff --git a/python/src/com/jetbrains/python/codeInsight/imports/ImportFromExistingAction.java b/python/src/com/jetbrains/python/codeInsight/imports/ImportFromExistingAction.java index f1367da6ecac..d539ab752c69 100644 --- a/python/src/com/jetbrains/python/codeInsight/imports/ImportFromExistingAction.java +++ b/python/src/com/jetbrains/python/codeInsight/imports/ImportFromExistingAction.java @@ -144,8 +144,8 @@ public class ImportFromExistingAction implements QuestionAction { PsiElement parent = src.getParent(); if (parent instanceof PyFromImportStatement) { // add another import element right after the one we got - PsiElement new_elt = gen.createImportElement(myName); - PyUtil.addListNode(parent, new_elt, null, false, true); + PsiElement newImportElement = gen.createImportElement(myName); + parent.add(newImportElement); } else { // just 'import' // all we need is to qualify our target diff --git a/python/testData/addImport/parens.after.py b/python/testData/addImport/parens.after.py new file mode 100644 index 000000000000..a0cbbc1485e7 --- /dev/null +++ b/python/testData/addImport/parens.after.py @@ -0,0 +1 @@ +from urllib import (urlopen, urlencode, unquote_plus) \ No newline at end of file diff --git a/python/testData/addImport/parens.py b/python/testData/addImport/parens.py new file mode 100644 index 000000000000..30c7b0de9a19 --- /dev/null +++ b/python/testData/addImport/parens.py @@ -0,0 +1 @@ +from urllib import (urlopen, urlencode) \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PyAddImportTest.java b/python/testSrc/com/jetbrains/python/PyAddImportTest.java index 4f84b0593b8d..e8bc09255db0 100644 --- a/python/testSrc/com/jetbrains/python/PyAddImportTest.java +++ b/python/testSrc/com/jetbrains/python/PyAddImportTest.java @@ -19,4 +19,15 @@ public class PyAddImportTest extends PyTestCase { }.execute(); myFixture.checkResultByFile("addImport/addBuiltin.after.py"); } + + public void testImportInParens() { // PY-7400 + myFixture.configureByFile("addImport/parens.py"); + new WriteCommandAction(myFixture.getProject(), myFixture.getFile()) { + @Override + protected void run(Result result) throws Throwable { + AddImportHelper.addImportFrom(myFixture.getFile(), null, "urllib", "unquote_plus", null, AddImportHelper.ImportPriority.BUILTIN); + } + }.execute(); + myFixture.checkResultByFile("addImport/parens.after.py"); + } }