diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2017-04-30 08:20:19 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2017-04-30 08:20:19 -0400 |
commit | 1ad37dcc0e3927175f3988b5116654c32450aefc (patch) | |
tree | 84b128b2eb468b068beedb392fb7b6569890ca9a | |
parent | a1f99a47253220988587897f35e518bcf6372df9 (diff) | |
download | python-coveragepy-1ad37dcc0e3927175f3988b5116654c32450aefc.tar.gz |
Fix: xml report fails in non-ascii directory. #573
-rw-r--r-- | CHANGES.rst | 5 | ||||
-rw-r--r-- | coverage/xmlreport.py | 2 | ||||
-rw-r--r-- | tests/test_xml.py | 9 |
3 files changed, 15 insertions, 1 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index d3495ec..76a1172 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -13,6 +13,11 @@ Unreleased - Errors printed by the ``coverage`` command now go to stderr instead of stdout. +- 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 573: https://bitbucket.org/ned/coveragepy/issues/573/cant-generate-xml-report-if-some-source + Version 4.4b1 --- 2017-04-04 ---------------------------- diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py index 8af0d78..b5a33dd 100644 --- a/coverage/xmlreport.py +++ b/coverage/xmlreport.py @@ -150,7 +150,7 @@ class XmlReporter(Reporter): else: rel_name = fr.relative_filename() - dirname = os.path.dirname(rel_name) or "." + dirname = os.path.dirname(rel_name) or u"." dirname = "/".join(dirname.split("/")[:self.config.xml_package_depth]) package_name = dirname.replace("/", ".") diff --git a/tests/test_xml.py b/tests/test_xml.py index b59f873..c3493e7 100644 --- a/tests/test_xml.py +++ b/tests/test_xml.py @@ -1,3 +1,4 @@ +# coding: utf-8 # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt @@ -186,6 +187,14 @@ class XmlReportTest(XmlTestHelpers, CoverageTest): xml ) + def test_nonascii_directory(self): + # https://bitbucket.org/ned/coveragepy/issues/573/cant-generate-xml-report-if-some-source + self.make_file("테스트/program.py", "a = 1") + with change_dir("테스트"): + cov = coverage.Coverage() + self.start_import_stop(cov, "program") + cov.xml_report() + class XmlPackageStructureTest(XmlTestHelpers, CoverageTest): """Tests about the package structure reported in the coverage.xml file.""" |