diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2012-11-08 23:06:36 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2012-11-08 23:06:36 -0500 |
commit | ba7bed0e890837eac503c9df5c1456c4369f177e (patch) | |
tree | 45e42d81a7f48ef9b4153fa13e777483c16dd1aa /coverage/control.py | |
parent | 48bcf7bb7f6d52ea0672fbadd3bd4b05a43960c1 (diff) | |
download | python-coveragepy-git-ba7bed0e890837eac503c9df5c1456c4369f177e.tar.gz |
A failure during XML reporting would leave an empty XML file behind. #210
Diffstat (limited to 'coverage/control.py')
-rw-r--r-- | coverage/control.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/coverage/control.py b/coverage/control.py index 006f06ba..726d3f37 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -602,6 +602,7 @@ class coverage(object): xml_output=outfile, ) file_to_close = None + delete_file = False if self.config.xml_output: if self.config.xml_output == '-': outfile = sys.stdout @@ -611,9 +612,17 @@ class coverage(object): try: reporter = XmlReporter(self, self.config) return reporter.report(morfs, outfile=outfile) + except CoverageException: + delete_file = True + raise finally: if file_to_close: file_to_close.close() + if delete_file: + try: + os.remove(self.config.xml_output) + except Exception: + pass def sysinfo(self): """Return a list of (key, value) pairs showing internal information.""" |