From c7eac47f3e9815cb179d66eb122dffd44a73556d Mon Sep 17 00:00:00 2001 From: Valentina Kiryushkina Date: Fri, 27 Nov 2015 11:07:39 +0300 Subject: [PATCH] Add resolve and rename tests --- .../refactoring/rename/formatStringKeyword.py | 1 + .../rename/formatStringKeyword_after.py | 1 + .../testData/resolve/FormatArgsAndKWargs.py | 1 + .../testData/resolve/FormatArgsAndKWargs1.py | 1 + .../testData/resolve/FormatPositionalArgs.py | 2 + python/testData/resolve/FormatStarArgument.py | 2 + python/testData/resolve/FormatStringKWArgs.py | 1 + python/testData/resolve/PercentKeyWordArgs.py | 1 + .../testData/resolve/PercentPositionalArgs.py | 1 + .../resolve/PercentPostionalFromRef.py | 0 .../com/jetbrains/python/PyResolveTest.java | 47 +++++++++++++++++++ .../python/PythonCompletionTest.java | 5 ++ .../python/refactoring/PyRenameTest.java | 5 ++ 13 files changed, 68 insertions(+) create mode 100644 python/testData/refactoring/rename/formatStringKeyword.py create mode 100644 python/testData/refactoring/rename/formatStringKeyword_after.py create mode 100644 python/testData/resolve/FormatArgsAndKWargs.py create mode 100644 python/testData/resolve/FormatArgsAndKWargs1.py create mode 100644 python/testData/resolve/FormatPositionalArgs.py create mode 100644 python/testData/resolve/FormatStarArgument.py create mode 100644 python/testData/resolve/FormatStringKWArgs.py create mode 100644 python/testData/resolve/PercentKeyWordArgs.py create mode 100644 python/testData/resolve/PercentPositionalArgs.py create mode 100644 python/testData/resolve/PercentPostionalFromRef.py diff --git a/python/testData/refactoring/rename/formatStringKeyword.py b/python/testData/refactoring/rename/formatStringKeyword.py new file mode 100644 index 000000000000..4c977b360929 --- /dev/null +++ b/python/testData/refactoring/rename/formatStringKeyword.py @@ -0,0 +1 @@ +"I want to rename this{to_be_renamed}".format(to_be_renamed="renaming") \ No newline at end of file diff --git a/python/testData/refactoring/rename/formatStringKeyword_after.py b/python/testData/refactoring/rename/formatStringKeyword_after.py new file mode 100644 index 000000000000..c70ff2840117 --- /dev/null +++ b/python/testData/refactoring/rename/formatStringKeyword_after.py @@ -0,0 +1 @@ +"I want to rename this{renamed}".format(renamed="renaming") \ No newline at end of file diff --git a/python/testData/resolve/FormatArgsAndKWargs.py b/python/testData/resolve/FormatArgsAndKWargs.py new file mode 100644 index 000000000000..88401b20be03 --- /dev/null +++ b/python/testData/resolve/FormatArgsAndKWargs.py @@ -0,0 +1 @@ +"I want to format" "{} as well as {kwd}".format("positional args", kwd="keyword") \ No newline at end of file diff --git a/python/testData/resolve/FormatArgsAndKWargs1.py b/python/testData/resolve/FormatArgsAndKWargs1.py new file mode 100644 index 000000000000..9f3188153994 --- /dev/null +++ b/python/testData/resolve/FormatArgsAndKWargs1.py @@ -0,0 +1 @@ +"I want to format{} as well as" "{kwd}".format("positional args", kwd="keyword") \ No newline at end of file diff --git a/python/testData/resolve/FormatPositionalArgs.py b/python/testData/resolve/FormatPositionalArgs.py new file mode 100644 index 000000000000..c262682a56da --- /dev/null +++ b/python/testData/resolve/FormatPositionalArgs.py @@ -0,0 +1,2 @@ +string = "bridge" +"my string is" "{}".format(string) \ No newline at end of file diff --git a/python/testData/resolve/FormatStarArgument.py b/python/testData/resolve/FormatStarArgument.py new file mode 100644 index 000000000000..1832aa9328cc --- /dev/null +++ b/python/testData/resolve/FormatStarArgument.py @@ -0,0 +1,2 @@ +my_dict = {"fst": 12} +"formatted string with args:""{fst}".format(**my_dict) \ No newline at end of file diff --git a/python/testData/resolve/FormatStringKWArgs.py b/python/testData/resolve/FormatStringKWArgs.py new file mode 100644 index 000000000000..c36f520c742d --- /dev/null +++ b/python/testData/resolve/FormatStringKWArgs.py @@ -0,0 +1 @@ +"formatted string with args:""{fst}".format(fst=12) \ No newline at end of file diff --git a/python/testData/resolve/PercentKeyWordArgs.py b/python/testData/resolve/PercentKeyWordArgs.py new file mode 100644 index 000000000000..e7345375c532 --- /dev/null +++ b/python/testData/resolve/PercentKeyWordArgs.py @@ -0,0 +1 @@ +"This is my favourite number%(""kwg)d!" % {'kwg': 4181} \ No newline at end of file diff --git a/python/testData/resolve/PercentPositionalArgs.py b/python/testData/resolve/PercentPositionalArgs.py new file mode 100644 index 000000000000..8e195ace9369 --- /dev/null +++ b/python/testData/resolve/PercentPositionalArgs.py @@ -0,0 +1 @@ +"in percent string it's" "%s argument, but i want to pass %d arguments" % ("string", 1423) \ No newline at end of file diff --git a/python/testData/resolve/PercentPostionalFromRef.py b/python/testData/resolve/PercentPostionalFromRef.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testSrc/com/jetbrains/python/PyResolveTest.java b/python/testSrc/com/jetbrains/python/PyResolveTest.java index bbd7ac7832f7..7002b781c525 100644 --- a/python/testSrc/com/jetbrains/python/PyResolveTest.java +++ b/python/testSrc/com/jetbrains/python/PyResolveTest.java @@ -610,4 +610,51 @@ public class PyResolveTest extends PyResolveTestCase { public void testRMatMul() { assertResolvesTo(PyFunction.class, "__rmatmul__"); } + + //PY-2478 + public void testFormatStringKWArgs() { + PsiElement target = resolve(); + assertTrue(target instanceof PyKeywordArgument); + assertEquals("fst", ((PyKeywordArgument)target).getKeyword()); + } + + //PY-2478 + public void testFormatStarArgument() { + PsiElement target = resolve(); + assertTrue(target instanceof PyReferenceExpression); + assertEquals("my_dict", ((PyReferenceExpression)target).getReferencedName()); + } + + //PY-2478 + public void testFormatPositionalArgs() { + PsiElement target = resolve(); + assertTrue(target instanceof PyReferenceExpression); + assertEquals("string", target.getText()); + } + + //PY-2478 + public void testFormatArgsAndKWargs() { + PsiElement target = resolve(); + assertTrue(target instanceof PyStringLiteralExpression); + } + + //PY-2478 + public void testFormatArgsAndKWargs1() { + PsiElement target = resolve(); + assertTrue(target instanceof PyKeywordArgument); + assertEquals("kwd", ((PyKeywordArgument)target).getKeyword()); + } + + //PY-2478 + public void testPercentPositionalArgs() { + PsiElement target = resolve(); + assertTrue(target instanceof PyStringLiteralExpression); + } + + //PY-2478 + public void testPercentKeyWordArgs() { + PsiElement target = resolve(); + assertTrue(target instanceof PyStringLiteralExpression); + assertEquals("kwg", ((PyStringLiteralExpression)target).getStringValue()); + } } diff --git a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java index 09dff0ade847..1dfb48941e80 100644 --- a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java @@ -902,22 +902,27 @@ public class PythonCompletionTest extends PyTestCase { doTest(); } + //PY-3077 public void testFormatString() { doTest(); } + //PY-3077 public void testFormatFuncArgument() { doTest(); } + //PY-3077 public void testFormatStringFromStarArg() { doTest(); } + //PY-3077 public void testFormatStringOutsideBraces() { doTest(); } + //PY-3077 public void testFormatStringFromRef() { doTest(); } diff --git a/python/testSrc/com/jetbrains/python/refactoring/PyRenameTest.java b/python/testSrc/com/jetbrains/python/refactoring/PyRenameTest.java index 8cadfe47a300..0da795a760f2 100644 --- a/python/testSrc/com/jetbrains/python/refactoring/PyRenameTest.java +++ b/python/testSrc/com/jetbrains/python/refactoring/PyRenameTest.java @@ -236,6 +236,11 @@ public class PyRenameTest extends PyTestCase { renameWithDocStringFormat(DocStringFormat.NUMPY, "bar"); } + //PY-2478 + public void testFormatStringKeyword() { + doTest("renamed"); + } + private void renameWithDocStringFormat(DocStringFormat format, final String newName) { runWithDocStringFormat(format, new Runnable() { public void run() {