summaryrefslogtreecommitdiff
path: root/tests/test_xml.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2017-05-05 07:58:26 -0400
committerNed Batchelder <ned@nedbatchelder.com>2017-05-05 07:58:26 -0400
commit80cf759b1504fc75e1135cc15a69a827a2439a1f (patch)
tree98a2de38c0450223a8bd8df19db676b3ebfa5143 /tests/test_xml.py
parent05ae0472830008dad1bd2ee53e4b55338bdc929f (diff)
downloadpython-coveragepy-git-80cf759b1504fc75e1135cc15a69a827a2439a1f.tar.gz
Make sure xml reports specify valid source filenames. #526
Diffstat (limited to 'tests/test_xml.py')
-rw-r--r--tests/test_xml.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/tests/test_xml.py b/tests/test_xml.py
index c3493e7b..b49debc9 100644
--- a/tests/test_xml.py
+++ b/tests/test_xml.py
@@ -60,6 +60,11 @@ class XmlTestHelpers(CoverageTest):
filename = here("f{0}.py".format(i))
self.make_file(filename, "# {0}\n".format(filename))
+ def assert_source(self, xml, src):
+ """Assert that the XML has a <source> element with `src`."""
+ src = abs_file(src)
+ self.assertRegex(xml, r'<source>\s*{0}\s*</source>'.format(re.escape(src)))
+
class XmlReportTest(XmlTestHelpers, CoverageTest):
"""Tests of the XML reports from coverage.py."""
@@ -146,11 +151,6 @@ class XmlReportTest(XmlTestHelpers, CoverageTest):
init_line = re_line(xml, 'filename="sub/__init__.py"')
self.assertIn('line-rate="1"', init_line)
- def assert_source(self, xml, src):
- """Assert that the XML has a <source> element with `src`."""
- src = abs_file(src)
- self.assertRegex(xml, r'<source>\s*{0}\s*</source>'.format(re.escape(src)))
-
def test_curdir_source(self):
# With no source= option, the XML report should explain that the source
# is in the current directory.
@@ -284,13 +284,16 @@ class XmlPackageStructureTest(XmlTestHelpers, CoverageTest):
def test_source_prefix(self):
# https://bitbucket.org/ned/coveragepy/issues/465
+ # https://bitbucket.org/ned/coveragepy/issues/526/generated-xml-invalid-paths-for-cobertura
self.make_file("src/mod.py", "print(17)")
cov = coverage.Coverage(source=["src"])
self.start_import_stop(cov, "mod", modfile="src/mod.py")
self.assert_package_and_class_tags(cov, """\
<package name=".">
- <class filename="src/mod.py" name="mod.py">
+ <class filename="mod.py" name="mod.py">
""")
+ xml = self.stdout()
+ self.assert_source(xml, "src")
def clean(text, scrub=None):