[Python-Dev] the role of assert in the standard library ?

Holger Krekel holger.krekel at gmail.com
Thu Apr 28 22:27:10 CEST 2011


On Thu, Apr 28, 2011 at 6:59 PM, Guido van Rossum <guido at python.org> wrote:
> On Thu, Apr 28, 2011 at 12:54 AM, Tarek Ziadé <ziade.tarek at gmail.com> wrote:
>> In my opinion assert should be avoided completely anywhere else than
>> in the tests. If this is a wrong statement, please let me know why :)
>
> I would turn that around. The assert statement should not be used in
> unit tests; unit tests should use self.assertXyzzy() always.

FWIW this is only true for the unittest module/pkg policy for writing and
organising tests. There are other popular test frameworks like nose and pytest
which promote using plain asserts within writing unit tests and also allow to
write tests in functions.  And judging from my tutorials and others places many
people appreciate the ease of using asserts as compared to learning tons
of new methods. YMMV.

Holger

> regular code, assert should be about detecting buggy code. It should
> not be used to test for error conditions in input data. (Both these
> can be summarized as "if you still want the test to happen with -O,
> don't use assert.)
>
> --
> --Guido van Rossum (python.org/~guido)
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/holger.krekel%40gmail.com
>


More information about the Python-Dev mailing list