summaryrefslogtreecommitdiff
path: root/tests/test_parser.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-04-20 12:21:15 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-04-20 12:21:15 -0400
commit1b81747e52752a30be1c4271e24d23a7cb3f71b4 (patch)
tree8297b06a003a0c1a79c2bf391d2c0f0cfb128d81 /tests/test_parser.py
parent03eb833bac7731bd6dfd4ca5d0eae1da7213eb57 (diff)
parentde4cfde7b1f7b3d3bee11a26b4c1bb3ae598259c (diff)
downloadpython-coveragepy-git-1b81747e52752a30be1c4271e24d23a7cb3f71b4.tar.gz
Merge issue-324 fix
Diffstat (limited to 'tests/test_parser.py')
-rw-r--r--tests/test_parser.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/test_parser.py b/tests/test_parser.py
index 244d4c70..81916a98 100644
--- a/tests/test_parser.py
+++ b/tests/test_parser.py
@@ -34,6 +34,22 @@ class PythonParserTest(CoverageTest):
2:1, 3:1, 4:2, 5:1, 7:1, 9:1, 10:1
})
+ def test_generator_exit_counts(self):
+ # https://bitbucket.org/ned/coveragepy/issue/324/yield-in-loop-confuses-branch-coverage
+ parser = self.parse_source("""\
+ def gen(input):
+ for n in inp:
+ yield (i * 2 for i in range(n))
+
+ list(gen([1,2,3]))
+ """)
+ self.assertEqual(parser.exit_counts(), {
+ 1:1, # def -> list
+ 2:2, # for -> yield; for -> exit
+ 3:2, # yield -> for; genexp exit
+ 5:1, # list -> exit
+ })
+
def test_try_except(self):
parser = self.parse_source("""\
try: