summaryrefslogtreecommitdiff
path: root/tests
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
commit0972f117f4271261c13031153a751c85e39acd33 (patch)
tree67f7d200684a3f7d508382ad29d7526ad5b92352 /tests
parenta433bf0eb9271ae65f4945cc597e98191660e31b (diff)
downloadpython-coveragepy-0972f117f4271261c13031153a751c85e39acd33.tar.gz
Make sure xml reports specify valid source filenames. #526
Diffstat (limited to 'tests')
-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 c3493e7..b49debc 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):