Keep IDLE from displaying spurious SystemExit tracebacks
when running scripts that terminated by raising SystemExit
(i.e. unittest and turtledemo).
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index acae3ae..e82ebf4 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -301,11 +301,14 @@
exec code in self.locals
finally:
interruptable = False
+ except SystemExit:
+ # Scripts that raise SystemExit should just
+ # return to the interactive prompt
+ pass
except:
self.usr_exc_info = sys.exc_info()
if quitting:
exit()
- # even print a user code SystemExit exception, continue
print_exception()
jit = self.rpchandler.console.getvar("<<toggle-jit-stack-viewer>>")
if jit:
diff --git a/Misc/NEWS b/Misc/NEWS
index 92bd686..71db196 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -205,6 +205,9 @@
- Issue #7358: cStringIO.StringIO now supports writing to and reading from
a stream larger than 2 GiB on 64-bit systems.
+- IDLE was displaying spurious SystemExit tracebacks when running scripts
+ that terminated by raising SystemExit (i.e. unittest and turtledemo).
+
- Issue #10355: In SpooledTemporaryFile class mode and name properties and
xreadlines method now work for unrolled files. encoding and newlines
properties now removed as they have no sense and always produced