summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'coverage')
-rw-r--r--coverage/cmdline.py5
-rw-r--r--coverage/execfile.py11
2 files changed, 13 insertions, 3 deletions
diff --git a/coverage/cmdline.py b/coverage/cmdline.py
index 2d4977c7..53693981 100644
--- a/coverage/cmdline.py
+++ b/coverage/cmdline.py
@@ -4,6 +4,7 @@ import getopt, os, sys
from coverage.annotate import AnnotateReporter
from coverage.summary import SummaryReporter
+from coverage.execfile import run_python_file
USAGE = r"""
Coverage version %(__version__)s
@@ -127,10 +128,8 @@ class CoverageScript:
return ERR
# Create the runtime environment the script on the cmdline expects.
sys.argv = args
- sys.path[0] = os.path.dirname(sys.argv[0])
- import __main__ # TODO: I think this is useless...
self.coverage.start()
- execfile(sys.argv[0], __main__.__dict__)
+ run_python_file(sys.argv[0])
self.coverage.stop()
if settings.get('combine'):
diff --git a/coverage/execfile.py b/coverage/execfile.py
new file mode 100644
index 00000000..bcf5bf4f
--- /dev/null
+++ b/coverage/execfile.py
@@ -0,0 +1,11 @@
+"""Execute files of Python code."""
+
+import os, sys
+
+def run_python_file(filename):
+ mod_globals = {
+ '__name__': '__main__',
+ '__file__': filename,
+ }
+ sys.path[0] = os.path.dirname(filename)
+ execfile(filename, mod_globals)