"""This isn't real code, just snippets..."""
# An infinite loop is structurally still a branch: it can next execute the
# first line of the loop, or the first line after the loop. But
# "while True" will never jump to the line after the loop, so the line
# is shown as a partial branch:
print "Left the True loop"
# Notice that "while 1" also has this problem. Even though the compiler
# knows there's no computation at the top of the loop, it's still expressed
# in byte code as a branch with two possibilities.
- # Coverage.py lets the developer exclude lines that he knows will not be
+ # Coverage.py lets developers exclude lines that they know will not be
# executed. So far, the branch coverage doesn't use all that information
# when deciding which lines are partially executed.
# Here, even though the else line is explicitly marked as never executed,
# the if line complains that it never branched to the else:
# This branch is always taken
# Here we run the code twice: once with no exception, and once with a
# matching exception. The "except" line is marked as partial because we
# never executed its third case: a non-matching exception.
print "y must have been odd"
# Another except clause, but this time all three cases are executed. No
# partial lines are shown: