bpo-36405: IDLE - Restore __main__ and add tests (GH-12518)
Fix error in commit 2b75155 noticed by Serhiy Storchaka.
(cherry picked from commit 0fe4513d9a5510ae91c0da7eb0433f79a6d4dda9)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
diff --git a/Lib/idlelib/calltip.py b/Lib/idlelib/calltip.py
index 4b78917..b013a7f 100644
--- a/Lib/idlelib/calltip.py
+++ b/Lib/idlelib/calltip.py
@@ -4,6 +4,7 @@
parameter and docstring information when you type an opening parenthesis, and
which disappear when you type a closing parenthesis.
"""
+import __main__
import inspect
import re
import sys
@@ -99,10 +100,10 @@
def get_entity(expression):
"""Return the object corresponding to expression evaluated
- in a namespace spanning sys.modules and globals().
+ in a namespace spanning sys.modules and __main.dict__.
"""
if expression:
- namespace = {**sys.modules, **globals()}
+ namespace = {**sys.modules, **__main__.__dict__}
try:
return eval(expression, namespace) # Only protect user code.
except BaseException: