On 2021-09-12 at 07:28:53 -0700,
Guido van Rossum <gu...@python.org> wrote:

> What about asserts that are not used for testing, but as classic
> “unless there’s a bug, this should hold”? Those may not want to incur
> the extra cost.

I was actually thinking exactly the opposite:  this would more useful in
production than in testing.

When I'm testing, tests build on each other.  I should know that the
inner parts work, and I should be testing specific aspects of the outer
parts.  If I don't have confidence in those inner parts, then I need to
write more tests against them.  If I don't "know" where the data comes
from in my assertions, then my tests are trying to test too much at
once.

On the other hand, weird things happen in production, and my first
reaction to "this shouldn't happen unless there's a bug" are is to start
looking in the logs at how we got there.  These power assertions are
like a retroactive or JIT logging mechanism (in the sense that I may not
have logged enough detail), or a sort of first order run-time debugger
that shows me what's relevant at the point of the failure.

As far as the extra cost goes, how does that cost compare to the full
stack trace I already get from the exception being raised?
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/RC373JSGZE2O6FOYJSPNZMOZU4DPNPKS/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to