diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2017-05-03 22:09:27 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2017-05-03 22:09:27 -0400 |
commit | b48ec04376ae5c9103bb73e1146473d70c1e5c8e (patch) | |
tree | 3c2ee5a25c254d3b735a64b915440b079c541360 | |
parent | 1b6d50b5cfa1a1319b2ab726111cd6e961a3926c (diff) | |
download | python-coveragepy-git-b48ec04376ae5c9103bb73e1146473d70c1e5c8e.tar.gz |
Use correct name for package source files. #526
-rw-r--r-- | CHANGES.rst | 5 | ||||
-rw-r--r-- | CONTRIBUTORS.txt | 1 | ||||
-rw-r--r-- | coverage/python.py | 9 | ||||
-rw-r--r-- | tests/test_filereporter.py | 6 |
4 files changed, 13 insertions, 8 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index 2f572790..4aac4a4f 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,6 +10,10 @@ Change history for Coverage.py Unreleased ---------- +- Reports could produce the wrong file names for packages, reporting ``pkg.py`` + instead of the correct ``pkg/__init__.py``. This is now fixed, closing + `issue 526`_. Thanks, Dirk Thomas. + - Code that uses ``sys.settrace(sys.gettrace())`` in a file that wasn't being coverage-measured would prevent correct coverage measurement in following code. An example of this was running doctests programmatically, as described @@ -21,6 +25,7 @@ Unreleased - Running ``coverage xml`` in a directory named with non-ASCII characters would fail under Python 2, as reported in `issue 573`_. This is now fixed. +.. _issue 526: https://bitbucket.org/ned/coveragepy/issues/526/generated-xml-invalid-paths-for-cobertura .. _issue 573: https://bitbucket.org/ned/coveragepy/issues/573/cant-generate-xml-report-if-some-source .. _issue 575: https://bitbucket.org/ned/coveragepy/issues/575/running-doctest-prevents-complete-coverage diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index 177bf972..877f6b84 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -37,6 +37,7 @@ David Christian David Stanek Detlev Offenbach Devin Jeanpierre +Dirk Thomas Dmitry Shishov Dmitry Trofimov Eduardo Schettino diff --git a/coverage/python.py b/coverage/python.py index dacdf619..10d22e08 100644 --- a/coverage/python.py +++ b/coverage/python.py @@ -150,11 +150,10 @@ class PythonFileReporter(FileReporter): super(PythonFileReporter, self).__init__(files.canonical_filename(filename)) if hasattr(morf, '__name__'): - name = morf.__name__ - name = name.replace(".", os.sep) - if filename.endswith('__init__.py'): - name += os.sep + '__init__' - name += '.py' + name = morf.__name__.replace(".", os.sep) + if os.path.basename(filename).startswith('__init__.'): + name += os.sep + "__init__" + name += ".py" name = files.unicode_filename(name) else: name = files.relative_filename(filename) diff --git a/tests/test_filereporter.py b/tests/test_filereporter.py index a348a844..59eafa11 100644 --- a/tests/test_filereporter.py +++ b/tests/test_filereporter.py @@ -61,9 +61,9 @@ class FileReporterTest(CoverageTest): acu = PythonFileReporter(aa) bcu = PythonFileReporter(aa.bb) ccu = PythonFileReporter(aa.bb.cc) - self.assertEqual(acu.relative_filename(), native("aa.py")) - self.assertEqual(bcu.relative_filename(), native("aa/bb.py")) - self.assertEqual(ccu.relative_filename(), native("aa/bb/cc.py")) + self.assertEqual(acu.relative_filename(), native("aa/__init__.py")) + self.assertEqual(bcu.relative_filename(), native("aa/bb/__init__.py")) + self.assertEqual(ccu.relative_filename(), native("aa/bb/cc/__init__.py")) self.assertEqual(acu.source(), "# aa\n") self.assertEqual(bcu.source(), "# bb\n") self.assertEqual(ccu.source(), "") # yes, empty |