summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stan.hu@aclimalabs.com>2014-02-03 23:33:26 -0800
committerStan Hu <stan.hu@aclimalabs.com>2014-02-03 23:33:26 -0800
commit5f113bc7a9272c9917d3c701eb63a6b98005254f (patch)
tree0c32039f7378eab6b35e13fc49d3d04232599fbf
parent442a0ba30c5c803e649331d8c6e1e449fcc1a161 (diff)
downloadpython-coveragepy-git-5f113bc7a9272c9917d3c701eb63a6b98005254f.tar.gz
Issue #94: Include the sources element
-rw-r--r--coverage/xmlreport.py18
-rw-r--r--tests/farm/html/gold_x_xml/coverage.xml3
-rw-r--r--tests/farm/html/gold_y_xml_branch/coverage.xml3
-rw-r--r--tests/farm/html/run_a_xml_1.py1
-rw-r--r--tests/farm/html/run_a_xml_2.py1
-rw-r--r--tests/farm/html/run_y_xml_branch.py1
-rw-r--r--tests/farm/html/src/coverage.xml3
7 files changed, 28 insertions, 2 deletions
diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py
index f5a4c1ba..2fb51007 100644
--- a/coverage/xmlreport.py
+++ b/coverage/xmlreport.py
@@ -17,6 +17,7 @@ class XmlReporter(Reporter):
def __init__(self, coverage, config):
super(XmlReporter, self).__init__(coverage, config)
+ self.source_paths = None
self.packages = None
self.xml_out = None
self.arcs = coverage.data.has_arcs()
@@ -47,16 +48,28 @@ class XmlReporter(Reporter):
xcoverage.appendChild(self.xml_out.createComment(
" Generated by coverage.py: %s " % __url__
))
- xpackages = self.xml_out.createElement("packages")
- xcoverage.appendChild(xpackages)
# Call xml_file for each file in the data.
+ self.source_paths = set()
self.packages = {}
self.report_files(self.xml_file, morfs)
+ xsources = self.xml_out.createElement("sources")
+ xcoverage.appendChild(xsources)
+
+ # Populate the XML DOM with the source info.
+ for path in sorted(self.source_paths):
+ xsource = self.xml_out.createElement("source")
+ xsources.appendChild(xsource)
+ txt = self.xml_out.createTextNode(path)
+ xsource.appendChild(txt)
+
lnum_tot, lhits_tot = 0, 0
bnum_tot, bhits_tot = 0, 0
+ xpackages = self.xml_out.createElement("packages")
+ xcoverage.appendChild(xpackages)
+
# Populate the XML DOM with the package info.
for pkg_name in sorted(self.packages.keys()):
pkg_data = self.packages[pkg_name]
@@ -99,6 +112,7 @@ class XmlReporter(Reporter):
package_name = cu.name.rpartition(".")[0]
className = cu.name
+ path = self.source_paths.add(cu.file_locator.relative_dir.rstrip('/'))
package = self.packages.setdefault(package_name, [{}, 0, 0, 0, 0])
xclass = self.xml_out.createElement("class")
diff --git a/tests/farm/html/gold_x_xml/coverage.xml b/tests/farm/html/gold_x_xml/coverage.xml
index 912112f2..d5a8c442 100644
--- a/tests/farm/html/gold_x_xml/coverage.xml
+++ b/tests/farm/html/gold_x_xml/coverage.xml
@@ -3,6 +3,9 @@
SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>
<coverage branch-rate="0" line-rate="0.6667" timestamp="1253972570431" version="3.1b1">
<!-- Generated by coverage.py: http://nedbatchelder.com/code/coverage/VER -->
+ <sources>
+ <source></source>
+ </sources>
<packages>
<package branch-rate="0" complexity="0" line-rate="0.6667" name="">
<classes>
diff --git a/tests/farm/html/gold_y_xml_branch/coverage.xml b/tests/farm/html/gold_y_xml_branch/coverage.xml
index ecbe0073..86e9e73c 100644
--- a/tests/farm/html/gold_y_xml_branch/coverage.xml
+++ b/tests/farm/html/gold_y_xml_branch/coverage.xml
@@ -3,6 +3,9 @@
SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>
<coverage branch-rate="0.5" line-rate="0.8" timestamp="1259288252325" version="3.2b4">
<!-- Generated by coverage.py: http://nedbatchelder.com/code/coverage/VER -->
+ <sources>
+ <source></source>
+ </sources>
<packages>
<package branch-rate="0.5" complexity="0" line-rate="0.8" name="">
<classes>
diff --git a/tests/farm/html/run_a_xml_1.py b/tests/farm/html/run_a_xml_1.py
index 3d187023..21d83d55 100644
--- a/tests/farm/html/run_a_xml_1.py
+++ b/tests/farm/html/run_a_xml_1.py
@@ -16,6 +16,7 @@ runfunc(html_it, rundir="src")
compare("gold_x_xml", "xml_1", scrubs=[
(r' timestamp="\d+"', ' timestamp="TIMESTAMP"'),
(r' version="[-.\w]+"', ' version="VERSION"'),
+ (r'<source>(.*)</source>', '<source></source>'),
(r'/code/coverage/?[-.\w]*', '/code/coverage/VER'),
])
clean("xml_1")
diff --git a/tests/farm/html/run_a_xml_2.py b/tests/farm/html/run_a_xml_2.py
index 53691ead..e63e7ead 100644
--- a/tests/farm/html/run_a_xml_2.py
+++ b/tests/farm/html/run_a_xml_2.py
@@ -16,6 +16,7 @@ runfunc(html_it, rundir="src")
compare("gold_x_xml", "xml_2", scrubs=[
(r' timestamp="\d+"', ' timestamp="TIMESTAMP"'),
(r' version="[-.\w]+"', ' version="VERSION"'),
+ (r'<source>(.*)</source>', '<source></source>'),
(r'/code/coverage/?[-.\w]*', '/code/coverage/VER'),
])
clean("xml_2")
diff --git a/tests/farm/html/run_y_xml_branch.py b/tests/farm/html/run_y_xml_branch.py
index 88a2e44e..ab8deef4 100644
--- a/tests/farm/html/run_y_xml_branch.py
+++ b/tests/farm/html/run_y_xml_branch.py
@@ -16,6 +16,7 @@ runfunc(xml_it, rundir="src")
compare("gold_y_xml_branch", "xml_branch", scrubs=[
(r' timestamp="\d+"', ' timestamp="TIMESTAMP"'),
(r' version="[-.\w]+"', ' version="VERSION"'),
+ (r'<source>(.*)</source>', '<source></source>'),
(r'/code/coverage/?[-.\w]*', '/code/coverage/VER'),
])
clean("xml_branch")
diff --git a/tests/farm/html/src/coverage.xml b/tests/farm/html/src/coverage.xml
index 128cf750..e20cdaec 100644
--- a/tests/farm/html/src/coverage.xml
+++ b/tests/farm/html/src/coverage.xml
@@ -3,6 +3,9 @@
SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>
<coverage branch-rate="0.0" line-rate="0.666666666667" timestamp="1263087779313" version="3.3a1">
<!-- Generated by coverage.py: http://nedbatchelder.com/code/coverage -->
+ <sources>
+ <source></source>
+ </sources>
<packages>
<package branch-rate="0.0" complexity="0.0" line-rate="0.666666666667" name="">
<classes>