summaryrefslogtreecommitdiff
path: root/tests/test_xml.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_xml.py')
-rw-r--r--tests/test_xml.py30
1 files changed, 14 insertions, 16 deletions
diff --git a/tests/test_xml.py b/tests/test_xml.py
index dd14b920..c3493e7b 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
@@ -8,11 +9,13 @@ import os.path
import re
import coverage
+from coverage.backward import import_local_file
from coverage.files import abs_file
from tests.coveragetest import CoverageTest
from tests.goldtest import CoverageGoldTest
from tests.goldtest import change_dir, compare
+from tests.helpers import re_line, re_lines
class XmlTestHelpers(CoverageTest):
@@ -165,8 +168,8 @@ class XmlReportTest(XmlTestHelpers, CoverageTest):
self.make_file("also/over/there/bar.py", "b = 2")
cov = coverage.Coverage(source=["src/main", "also/over/there", "not/really"])
cov.start()
- mod_foo = self.import_local_file("foo", "src/main/foo.py") # pragma: nested
- mod_bar = self.import_local_file("bar", "also/over/there/bar.py") # pragma: nested
+ mod_foo = import_local_file("foo", "src/main/foo.py") # pragma: nested
+ mod_bar = import_local_file("bar", "also/over/there/bar.py") # pragma: nested
cov.stop() # pragma: nested
cov.xml_report([mod_foo, mod_bar], outfile="-")
xml = self.stdout()
@@ -184,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."""
@@ -194,7 +205,7 @@ class XmlPackageStructureTest(XmlTestHelpers, CoverageTest):
cov.xml_report(outfile="-")
packages_and_classes = re_lines(self.stdout(), r"<package |<class ")
scrubs = r' branch-rate="0"| complexity="0"| line-rate="[\d.]+"'
- return clean("".join(packages_and_classes), scrubs)
+ return clean(packages_and_classes, scrubs)
def assert_package_and_class_tags(self, cov, result):
"""Check the XML package and class tags from `cov` match `result`."""
@@ -282,19 +293,6 @@ class XmlPackageStructureTest(XmlTestHelpers, CoverageTest):
""")
-def re_lines(text, pat):
- """Return a list of lines that match `pat` in the string `text`."""
- lines = [l for l in text.splitlines(True) if re.search(pat, l)]
- return lines
-
-
-def re_line(text, pat):
- """Return the one line in `text` that matches regex `pat`."""
- lines = re_lines(text, pat)
- assert len(lines) == 1
- return lines[0]
-
-
def clean(text, scrub=None):
"""Clean text to prepare it for comparison.