Thomas Fischbacher added the comment:
Addendum
Serhiy, I agree that my assessment was incorrect.
It actually is unittest/mock.py that has quite a few 'raise AssertionError'
that are not coming from an 'assert' keyword statement.
At a deeper level, the problem here is as follows:
Every
Serhiy Storchaka added the comment:
I concur with Eric. The existing documentation looks pretty clear to me. Any
exception can be raised explicitly, no need to repeat this.
And unittest.TestCase methods do not raise AssertionError. They raise
TestCase.failureException, which by default is
Eric V. Smith added the comment:
> I would argue that "The reference documentation for X states that it gets
> raised under condition Y" generally should be understood as "this is a
> guarantee that also includes the guarantee that it is not raised under other
> conditions in correctly
Thomas Fischbacher added the comment:
The documentation of exceptions in the reference is one of the places that
makes the life of users substantially harder than it ought to be, since the
documentation appears to not have been written with the intent to give
guarantees that users can
Eric V. Smith added the comment:
The documentation doesn't say that assert statements are the only place
AssertionError is raised, so I don't think it's incorrect.
> From this, one can infer the guarantee "the -O flag will suppress
> AssertionError exceptions from being raised".
I don't
New submission from Thomas Fischbacher :
The Python reference says:
(1) https://docs.python.org/3/library/exceptions.html#concrete-exceptions
exception AssertionError
Raised when an assert statement fails.
(2) https://docs.python.org/3/reference/simple_stmts.html#the-assert-statement