diff options
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/cmdline.py | 5 | ||||
-rw-r--r-- | coverage/execfile.py | 11 |
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) |