diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2017-05-05 07:58:26 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2017-05-05 07:58:26 -0400 |
commit | 80cf759b1504fc75e1135cc15a69a827a2439a1f (patch) | |
tree | 98a2de38c0450223a8bd8df19db676b3ebfa5143 /tests/test_xml.py | |
parent | 05ae0472830008dad1bd2ee53e4b55338bdc929f (diff) | |
download | python-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.py | 15 |
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): |