From 48bcf7bb7f6d52ea0672fbadd3bd4b05a43960c1 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Thu, 8 Nov 2012 22:16:35 -0500 Subject: A work-in-progress for #207, a minor improvement, and a commented-out test that shows the problem. --- coverage/execfile.py | 2 +- test/test_process.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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", """\ -- cgit v1.2.1