PY-15143 Do not allow to remove default value from parameter without any replacement...
[idea/community.git] / python / testSrc / com / jetbrains / python / refactoring / changeSignature / PyChangeSignatureTest.java
index 0a66b1e6bf71fc39c9b6c9d51d01ae50e68027dd..14984c95887726b240e75dff11421a4f23b5e8df 100644 (file)
@@ -34,6 +34,7 @@ import java.util.List;
 /**
  * User : ktisha
  */
+@SuppressWarnings("ArraysAsListWithZeroOrOneArgument")
 @TestDataPath("$CONTENT_ROOT/../testData/")
 public class PyChangeSignatureTest extends PyTestCase {
 
@@ -79,6 +80,13 @@ public class PyChangeSignatureTest extends PyTestCase {
     doChangeSignatureTest(null, Arrays.asList(new PyParameterInfo(0, "a", null, false), new PyParameterInfo(1, "b", "2", false)));
   }
 
+  // PY-15143
+  public void testRemoveDefaultFromParamWithoutReplacement() {
+    final PyParameterInfo first = new PyParameterInfo(0, "arg", null, false);
+    final PyParameterInfo second = new PyParameterInfo(-1, "vvv", "xxx", false);
+    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)));
@@ -193,11 +201,11 @@ public class PyChangeSignatureTest extends PyTestCase {
   }
 
   public void testNonDefaultAfterDefault() {
-    doValidationTest(null, Arrays.asList(new PyParameterInfo(-1, "a", "2", false), new PyParameterInfo(1, "b", "2", false)), null);
+    doValidationTest(null, Arrays.asList(new PyParameterInfo(-1, "a", "2", false), new PyParameterInfo(0, "b", "2", false)), null);
   }
 
   public void testNonDefaultAfterDefault1() {
-    doValidationTest(null, Arrays.asList(new PyParameterInfo(1, "b", "1", true), new PyParameterInfo(-1, "a", "2", false)),
+    doValidationTest(null, Arrays.asList(new PyParameterInfo(0, "b", "1", true), new PyParameterInfo(-1, "a", "2", false)),
                      PyBundle.message("ANN.non.default.param.after.default"));
   }