summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2009-05-09 10:40:39 -0400
committerNed Batchelder <ned@nedbatchelder.com>2009-05-09 10:40:39 -0400
commitf77eb761dcfb51dacdc94ccd089a10b298e78c13 (patch)
treea6654261b9447ce42ea499a5d1edce769664996b
parentbd0921599e5c93271806fb7699f1e786c8dad6ac (diff)
downloadpython-coveragepy-f77eb761dcfb51dacdc94ccd089a10b298e78c13.tar.gz
Also make __builtins__ available in main programs.
-rw-r--r--coverage/execfile.py3
-rw-r--r--test/test_execfile.py5
-rw-r--r--test/try_execfile.py2
3 files changed, 8 insertions, 2 deletions
diff --git a/coverage/execfile.py b/coverage/execfile.py
index e7d2c77..d6bcdce 100644
--- a/coverage/execfile.py
+++ b/coverage/execfile.py
@@ -15,7 +15,8 @@ def run_python_file(filename, args):
main_mod = imp.new_module('__main__')
sys.modules['__main__'] = main_mod
main_mod.__file__ = filename
-
+ main_mod.__builtins__ = sys.modules['__builtin__']
+
# Set sys.argv and the first path element properly.
old_argv = sys.argv
old_path0 = sys.path[0]
diff --git a/test/test_execfile.py b/test/test_execfile.py
index fc5b52a..de1a575 100644
--- a/test/test_execfile.py
+++ b/test/test_execfile.py
@@ -33,12 +33,15 @@ class RunTest(CoverageTest):
# Argv should have the proper values.
self.assertEqual(mod_globs['argv'], [tryfile, "arg1", "arg2"])
+ # __builtins__ should have the right values, like open().
+ self.assertEqual(mod_globs['__builtins__.has_open'], True)
+
def test_no_extra_file(self):
# Make sure that running a file doesn't create an extra compiled file.
self.makeFile("xxx", """\
print "a non-.py file!"
""")
-
+
self.assertEqual(os.listdir("."), ["xxx"])
run_python_file("xxx", ["xxx"])
self.assertEqual(os.listdir("."), ["xxx"])
diff --git a/test/try_execfile.py b/test/try_execfile.py
index f66b9c5..9a8804a 100644
--- a/test/try_execfile.py
+++ b/test/try_execfile.py
@@ -15,6 +15,8 @@ globals_to_check = {
'__name__': __name__,
'__file__': __file__,
'__doc__': __doc__,
+ '__builtins__.has_open': hasattr(__builtins__, 'open'),
+ '__builtins__.dir': dir(__builtins__),
'DATA': DATA,
'FN_VAL': FN_VAL,
'__main__.DATA': getattr(__main__, "DATA", "nothing"),