diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-04-20 12:21:15 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-04-20 12:21:15 -0400 |
commit | 1b81747e52752a30be1c4271e24d23a7cb3f71b4 (patch) | |
tree | 8297b06a003a0c1a79c2bf391d2c0f0cfb128d81 /tests/test_parser.py | |
parent | 03eb833bac7731bd6dfd4ca5d0eae1da7213eb57 (diff) | |
parent | de4cfde7b1f7b3d3bee11a26b4c1bb3ae598259c (diff) | |
download | python-coveragepy-git-1b81747e52752a30be1c4271e24d23a7cb3f71b4.tar.gz |
Merge issue-324 fix
Diffstat (limited to 'tests/test_parser.py')
-rw-r--r-- | tests/test_parser.py | 16 |
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: |