diff options
| author | Ned Batchelder <ned@nedbatchelder.com> | 2018-10-05 10:39:28 -0400 |
|---|---|---|
| committer | Ned Batchelder <ned@nedbatchelder.com> | 2018-10-06 12:20:18 -0400 |
| commit | f12f8559c16ea172aac1f35fbe4f1b0232570df0 (patch) | |
| tree | 617e51477552beb4eafbe0621df3814db108f3a2 /tests/test_parser.py | |
| parent | 1f7a74b1446fc18bb9287b25351d490a1c6d60c7 (diff) | |
| download | python-coveragepy-git-f12f8559c16ea172aac1f35fbe4f1b0232570df0.tar.gz | |
Finally jumps back to exiting lines
In Python 3.8, when a finally clause is run because a line in the try
block is exiting the block, the exiting line is visited again after the
finally block.
(cherry picked from commit 04ff188349df84f73167108314e9698059830279)
Diffstat (limited to 'tests/test_parser.py')
| -rw-r--r-- | tests/test_parser.py | 69 |
1 files changed, 50 insertions, 19 deletions
diff --git a/tests/test_parser.py b/tests/test_parser.py index 5a51af3b..9786fe38 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -330,26 +330,57 @@ class ParserMissingArcDescriptionTest(CoverageTest): this_thing(16) that_thing(17) """) - self.assertEqual( - parser.missing_arc_description(16, 17), - "line 16 didn't jump to line 17, because the break on line 5 wasn't executed" - ) - self.assertEqual( - parser.missing_arc_description(16, 2), - "line 16 didn't jump to line 2, " - "because the continue on line 8 wasn't executed" + if env.PYBEHAVIOR.finally_jumps_back: + self.assertEqual( + parser.missing_arc_description(16, 5), + "line 16 didn't jump to line 5, because the break on line 5 wasn't executed" + ) + self.assertEqual( + parser.missing_arc_description(5, 17), + "line 5 didn't jump to line 17, because the break on line 5 wasn't executed" + ) + self.assertEqual( + parser.missing_arc_description(16, 8), + "line 16 didn't jump to line 8, because the continue on line 8 wasn't executed" + ) + self.assertEqual( + parser.missing_arc_description(8, 2), + "line 8 didn't jump to line 2, because the continue on line 8 wasn't executed" + ) + self.assertEqual( + parser.missing_arc_description(16, 12), + "line 16 didn't jump to line 12, because the return on line 12 wasn't executed" + ) + self.assertEqual( + parser.missing_arc_description(12, -1), + "line 12 didn't return from function 'function', " + "because the return on line 12 wasn't executed" + ) + self.assertEqual( + parser.missing_arc_description(16, -1), + "line 16 didn't except from function 'function', " + "because the raise on line 14 wasn't executed" + ) + else: + self.assertEqual( + parser.missing_arc_description(16, 17), + "line 16 didn't jump to line 17, because the break on line 5 wasn't executed" + ) + self.assertEqual( + parser.missing_arc_description(16, 2), + "line 16 didn't jump to line 2, " + "because the continue on line 8 wasn't executed" + " or " + "the continue on line 10 wasn't executed" + ) + self.assertEqual( + parser.missing_arc_description(16, -1), + "line 16 didn't except from function 'function', " + "because the raise on line 14 wasn't executed" " or " - "the continue on line 10 wasn't executed" - ) - self.assertEqual( - parser.missing_arc_description(16, -1), - "line 16 didn't except from function 'function', " - "because the raise on line 14 wasn't executed" - " or " - "line 16 didn't return from function 'function', " - "because the return on line 12 wasn't executed" - ) - + "line 16 didn't return from function 'function', " + "because the return on line 12 wasn't executed" + ) def test_missing_arc_descriptions_bug460(self): parser = self.parse_text(u"""\ x = 1 |
