mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
PY-24607 PY-24602 Add tests on other older problems with Change Signature
All these issues have been resolved in the new version of PyChangeSignatureUsageProcessor
This commit is contained in:
@@ -5,3 +5,4 @@ def foo(a, d=1, b=None):
|
||||
foo("a", b="b")
|
||||
foo("a")
|
||||
foo("a", b="b")
|
||||
foo("a", b=None)
|
||||
@@ -4,3 +4,4 @@ def foo(a, b=None):
|
||||
foo("a", "b")
|
||||
foo("a")
|
||||
foo("a", b="b")
|
||||
foo("a", None)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, foo, y, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, foo=None, y=None, extra1=1, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, foo, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, extra1=1, foo=None, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, foo, y=None, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, foo=None, extra1=1, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, foo, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, extra1=1, foo=None, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, **kwargs):
|
||||
pass
|
||||
|
||||
|
||||
f(42, extra1=1, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, foo, **kwargs):
|
||||
pass
|
||||
|
||||
|
||||
f(42, extra1=1, foo=None, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(foo, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(foo=None, extra1=1, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, foo, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, extra1=1, foo=None, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, bar, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, bar=None, extra1=1, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, foo, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, extra1=1, foo=None, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(foo, x, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, x=None, extra1=1, extra2=2)
|
||||
@@ -0,0 +1,5 @@
|
||||
def f(x, foo, **kwargs):
|
||||
print(foo, kwargs)
|
||||
|
||||
|
||||
f(42, extra1=1, foo=None, extra2=2)
|
||||
@@ -72,11 +72,17 @@ public class PyChangeSignatureTest extends PyTestCase {
|
||||
new PyParameterInfo(-1, "c", "3", false)));
|
||||
}
|
||||
|
||||
public void testAddDefaultParam() {
|
||||
public void testAddDefaultParamAtEnd() {
|
||||
doChangeSignatureTest(null, Arrays.asList(new PyParameterInfo(0, "a", null, false), new PyParameterInfo(1, "b", null, false),
|
||||
new PyParameterInfo(-1, "c", "3", true)));
|
||||
}
|
||||
|
||||
// PY-24607
|
||||
public void testAddDefaultParamBeforeAnotherDefault() {
|
||||
doChangeSignatureTest(null, Arrays.asList(new PyParameterInfo(0, "a", null, false), new PyParameterInfo(-1, "d", "1", true),
|
||||
new PyParameterInfo(1, "b", "None", true)));
|
||||
}
|
||||
|
||||
public void testRemoveDefaultFromParam() {
|
||||
doChangeSignatureTest(null, Arrays.asList(new PyParameterInfo(0, "a", null, false), new PyParameterInfo(1, "b", "2", false)));
|
||||
}
|
||||
@@ -88,11 +94,6 @@ public class PyChangeSignatureTest extends PyTestCase {
|
||||
doValidationTest(null, Arrays.asList(first, second), PyBundle.message("refactoring.change.signature.dialog.validation.default.missing"));
|
||||
}
|
||||
|
||||
public void testAddDefaultParam1() {
|
||||
doChangeSignatureTest(null, Arrays.asList(new PyParameterInfo(0, "a", null, false), new PyParameterInfo(-1, "d", "1", true),
|
||||
new PyParameterInfo(1, "b", "None", true)));
|
||||
}
|
||||
|
||||
public void testUpdateDocstring() {
|
||||
getIndentOptions().INDENT_SIZE = 2;
|
||||
final PyParameterInfo a = new PyParameterInfo(0, "a", null, false);
|
||||
@@ -310,7 +311,6 @@ public class PyChangeSignatureTest extends PyTestCase {
|
||||
new PyParameterInfo(1, "**kwargs", null, false)));
|
||||
}
|
||||
|
||||
|
||||
// PY-24480
|
||||
public void testAddParameterBeforeVararg() {
|
||||
doChangeSignatureTest(null, Arrays.asList(new PyParameterInfo(-1, "x", "42", false),
|
||||
@@ -332,6 +332,49 @@ public class PyChangeSignatureTest extends PyTestCase {
|
||||
});
|
||||
}
|
||||
|
||||
// PY-24602
|
||||
public void testScatteredKwargsArgsRemoveParam() {
|
||||
doChangeSignatureTest("f", Arrays.asList(new PyParameterInfo(0, "x", null, false),
|
||||
new PyParameterInfo(2, "**kwargs", null, false)));
|
||||
}
|
||||
|
||||
// PY-24602
|
||||
public void testScatteredKwargsArgsRenameParam() {
|
||||
doChangeSignatureTest("f", Arrays.asList(new PyParameterInfo(0, "x", null, false),
|
||||
new PyParameterInfo(1, "bar", null, false),
|
||||
new PyParameterInfo(2, "**kwargs", null, false)));
|
||||
}
|
||||
|
||||
// PY-24602
|
||||
public void testScatteredKwargsArgsRemoveParamBefore() {
|
||||
doChangeSignatureTest("f", Arrays.asList(new PyParameterInfo(1, "foo", null, false),
|
||||
new PyParameterInfo(2, "**kwargs", null, false)));
|
||||
}
|
||||
|
||||
// PY-24602
|
||||
public void testScatteredKwargsArgsAddParamAfter() {
|
||||
doChangeSignatureTest("f", Arrays.asList(new PyParameterInfo(0, "x", null, false),
|
||||
new PyParameterInfo(1, "foo", null, false),
|
||||
new PyParameterInfo(-1, "y", "None", false),
|
||||
new PyParameterInfo(2, "**kwargs", null, false)));
|
||||
}
|
||||
|
||||
// PY-24602
|
||||
public void testScatteredKwargsArgsAddParamAfterWithDefault() {
|
||||
doChangeSignatureTest("f", Arrays.asList(new PyParameterInfo(0, "x", null, false),
|
||||
new PyParameterInfo(1, "foo", null, false),
|
||||
new PyParameterInfo(-1, "y", "None", true),
|
||||
new PyParameterInfo(2, "**kwargs", null, false)));
|
||||
}
|
||||
|
||||
// PY-24602
|
||||
public void testScatteredKwargsArgsSwapParams() {
|
||||
doChangeSignatureTest("f", Arrays.asList(new PyParameterInfo(0, "foo", null, false),
|
||||
new PyParameterInfo(1, "x", null, false),
|
||||
new PyParameterInfo(2, "**kwargs", null, false)));
|
||||
}
|
||||
|
||||
|
||||
public void doChangeSignatureTest(@Nullable String newName, @Nullable List<PyParameterInfo> parameters) {
|
||||
myFixture.configureByFile("refactoring/changeSignature/" + getTestName(true) + ".before.py");
|
||||
changeSignature(newName, parameters);
|
||||
|
||||
Reference in New Issue
Block a user