summaryrefslogtreecommitdiff
path: root/coverage/data.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2016-01-31 18:39:49 -0500
committerNed Batchelder <ned@nedbatchelder.com>2016-01-31 18:39:49 -0500
commitce17b1a6811e4cacbb7de5c876003347b0a91e65 (patch)
treef509b5575c1826674b19f226ce9812a58d9edf34 /coverage/data.py
parent703f088e67c256b2491ced099b994f277775fe5f (diff)
downloadpython-coveragepy-git-ce17b1a6811e4cacbb7de5c876003347b0a91e65.tar.gz
Yield statements that are not resumed shouldn't be marked as missing. #440
Diffstat (limited to 'coverage/data.py')
-rw-r--r--coverage/data.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 17cf73ce..60e104d9 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -4,6 +4,7 @@
"""Coverage data for coverage.py."""
import glob
+import itertools
import json
import optparse
import os
@@ -178,11 +179,12 @@ class CoverageData(object):
"""
if self._arcs is not None:
- if filename in self._arcs:
- return [s for s, __ in self._arcs[filename] if s > 0]
+ arcs = self._arcs.get(filename)
+ if arcs is not None:
+ all_lines = itertools.chain.from_iterable(arcs)
+ return list(set(l for l in all_lines if l > 0))
elif self._lines is not None:
- if filename in self._lines:
- return self._lines[filename]
+ return self._lines.get(filename)
return None
def arcs(self, filename):