Stylistic question regarding no-op code and tests

Chris Angelico rosuav at gmail.com
Wed Oct 14 21:58:47 EDT 2015


On Thu, Oct 15, 2015 at 12:49 PM, Jason Swails <jason.swails at gmail.com> wrote:
> My question is, what do you think of the "else: pass" statement? It is a
> complete no-op and is syntactically equivalent to the same code with those
> lines removed. Up until earlier today, I would look at that and cringe (I
> still do, a little).
>> What I recently realized, though, that what this construct allows is for the
> coverage testing package (which I have recently started employing for my
> project... thanks Ned and others!) to detect whether or not both code paths
> are covered in the test suite.

If that's the case, it absolutely MUST have some acknowledgement in
the code. Maybe a comment, or maybe replace the 'pass' with an
'assert', or (a neat trick I've used in a few places) a statistical
counter:
 if filename is not None:
 process_file(filename)
 files_processed += 1
 else:
 nonfiles_not_processed += 1
Your coverage tester should be just as happy with that, and it doesn't
look pointless.
ChrisA


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /