PY-15975 Any python configuration is debuggable except one that declares itself not debuggable. All other configurations are skipped by PyDebugRunner

This commit is contained in:
Ilya.Kazakevich
2015-09-04 16:56:15 +03:00
parent 1a48207cd1
commit 14814c377c
@@ -82,10 +82,28 @@ public class PyDebugRunner extends GenericProgramRunner {
// If not debug at all
return false;
}
/**
* Any python configuration is debuggable unless it explicitly declares itself as DebugAwareConfiguration and denies it
* with canRunUnderDebug == false
*/
if (profile instanceof WrappingRunConfiguration) {
// If configuration is wrapper -- unwrap it and check
return isDebuggable(((WrappingRunConfiguration<?>)profile).getPeer());
}
return isDebuggable(profile);
}
private static boolean isDebuggable(@NotNull final RunProfile profile) {
if (profile instanceof DebugAwareConfiguration) {
// if configuration knows whether debug is allowed
return ((DebugAwareConfiguration)profile).canRunUnderDebug();
}
if (profile instanceof AbstractPythonRunConfiguration) {
// Any python configuration is debuggable
return true;
}
// No even a python configuration
return false;
}