Add test for '-m package' interpreter option in debug mode (PY-15230)
[idea/community.git] / python / testSrc / com / jetbrains / env / python / PythonDebuggerTest.java
index 9646906b89d9dddee12f1e053a9dfd35ff0047a2..c27cfbeea352322b5ee9d1cf7f927ed7fd6813c4 100644 (file)
@@ -26,6 +26,7 @@ import com.jetbrains.python.debugger.PyExceptionBreakpointType;
 import com.jetbrains.python.debugger.pydev.PyDebugCallback;
 import com.jetbrains.python.debugger.settings.PyDebuggerSettings;
 import com.jetbrains.python.debugger.settings.PySteppingFilter;
+import com.jetbrains.python.sdk.PythonEnvUtil;
 import com.jetbrains.python.sdk.flavors.PythonSdkFlavor;
 import com.jetbrains.python.sdkTools.SdkCreationType;
 import org.jetbrains.annotations.NotNull;
@@ -44,33 +45,39 @@ import static org.junit.Assert.assertNull;
  */
 
 public class PythonDebuggerTest extends PyEnvTestCase {
-  @Test
-  public void testBreakpointStopAndEval() throws Exception {
-    runPythonTest(new PyDebuggerTask("/debug", "test1.py") {
-      @Override
-      public void before() throws Exception {
-        toggleBreakpoint(getFilePath(getScriptName()), 3);
-      }
+  private class BreakpointStopAndEvalTask extends PyDebuggerTask {
+    public BreakpointStopAndEvalTask() {
+      super("/debug", "test1.py");
+    }
 
-      @Override
-      public void testing() throws Exception {
-        waitForPause();
+    @Override
+    public void before() throws Exception {
+      toggleBreakpoint(getFilePath(getScriptName()), 3);
+    }
 
-        eval("i").hasValue("0");
+    @Override
+    public void testing() throws Exception {
+      waitForPause();
 
-        resume();
+      eval("i").hasValue("0");
 
-        waitForPause();
+      resume();
 
-        eval("i").hasValue("1");
+      waitForPause();
 
-        resume();
+      eval("i").hasValue("1");
 
-        waitForPause();
+      resume();
 
-        eval("i").hasValue("2");
-      }
-    });
+      waitForPause();
+
+      eval("i").hasValue("2");
+    }
+  }
+
+  @Test
+  public void testBreakpointStopAndEval() throws Exception {
+    runPythonTest(new BreakpointStopAndEvalTask());
   }
 
   @Test
@@ -1125,5 +1132,20 @@ public class PythonDebuggerTest extends PyEnvTestCase {
       }
     });
   }
+
+  @Staging
+  @Test
+  public void testModuleInterpreterOption() throws Exception {
+    runPythonTest(new BreakpointStopAndEvalTask() {
+      @Override
+      public void before() throws Exception {
+        super.before();
+
+        PythonEnvUtil.addToPythonPath(myRunConfiguration.getEnvs(), new File(getFilePath(getScriptName())).getParent());
+
+        myRunConfiguration.setInterpreterOptions("-m runner");
+      }
+    });
+  }
 }