summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/execfile.py2
-rw-r--r--test/test_process.py9
2 files changed, 10 insertions, 1 deletions
diff --git a/coverage/execfile.py b/coverage/execfile.py
index 3283a3f7..587c2d3c 100644
--- a/coverage/execfile.py
+++ b/coverage/execfile.py
@@ -110,7 +110,7 @@ def run_python_file(filename, args, package=None):
# We have the source. `compile` still needs the last line to be clean,
# so make sure it is, then compile a code object from it.
- if source[-1] != '\n':
+ if not source or source[-1] != '\n':
source += '\n'
code = compile(source, filename, "exec")
diff --git a/test/test_process.py b/test/test_process.py
index c1134946..473dafb1 100644
--- a/test/test_process.py
+++ b/test/test_process.py
@@ -290,6 +290,15 @@ class ProcessTest(CoverageTest):
out2 = self.run_command("python -m test.try_execfile")
self.assertMultiLineEqual(out, out2)
+ if 0:
+ # For https://bitbucket.org/ned/coveragepy/issue/207
+ def test_coverage_run_dashm_is_like_python_dashm_with__main__(self):
+ self.make_file("package/__init__.py") # empty
+ self.make_file("package/__main__.py", "#\n") # empty
+ out = self.run_command("coverage run -m package")
+ out2 = self.run_command("python -m package")
+ self.assertMultiLineEqual(out, out2)
+
if hasattr(os, 'fork'):
def test_fork(self):
self.make_file("fork.py", """\