diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2018-11-18 19:41:30 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2018-11-25 14:34:59 -0500 |
commit | b7e0eec3d794ee350f8a4392a0c9cc90fff54fa0 (patch) | |
tree | 0ccbe08a6c6dd24f95789b1b402d1c418e735a39 /coverage/cmdline.py | |
parent | 41547862ba4a9a948023ade66e41d9f43d9d84c2 (diff) | |
download | python-coveragepy-git-b7e0eec3d794ee350f8a4392a0c9cc90fff54fa0.tar.gz |
PyRunner knows how to run Python files.
Adjust sys.path to better emulate Python, but only if we should.
Diffstat (limited to 'coverage/cmdline.py')
-rw-r--r-- | coverage/cmdline.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/coverage/cmdline.py b/coverage/cmdline.py index be258b5e..67efa8db 100644 --- a/coverage/cmdline.py +++ b/coverage/cmdline.py @@ -19,7 +19,7 @@ from coverage import env from coverage.collector import CTracer from coverage.data import line_counts from coverage.debug import info_formatter, info_header -from coverage.execfile import run_python_file, run_python_module +from coverage.execfile import PyRunner from coverage.misc import BaseCoverageException, ExceptionDuringRun, NoSource from coverage.results import should_fail_under @@ -504,6 +504,10 @@ class CoverageScript(object): include=include, ) + # We need to be able to import from the current directory, because + # plugins may try to, for example, to read Django settings. + sys.path.insert(0, '') + self.coverage.load() total = None @@ -633,6 +637,9 @@ class CoverageScript(object): ) return ERR + runner = PyRunner(args, as_module=bool(options.module)) + runner.prepare() + if options.append: self.coverage.load() @@ -640,10 +647,7 @@ class CoverageScript(object): self.coverage.start() code_ran = True try: - if options.module: - run_python_module(args[0], args) - else: - run_python_file(args[0], args) + runner.run() except NoSource: code_ran = False raise |