If Context Manager's method __exit__ returns a true value exception
thrown in with block is not propagated. Currently
RunContext.__exit__ return self which is always a true value because
it can never be None.
This change fixes __exit__ method to return True only if exception
is expected (i.e. handled by pushing error message into the context). In
other cases exception will always be propagated.
If Context Manager's method
__exit__
returns a true value exception thrown inwith
block is not propagated. CurrentlyRunContext.__exit__
returnself
which is always a true value because it can never beNone
.This change fixes
__exit__
method to returnTrue
only if exception is expected (i.e. handled by pushing error message into the context). In other cases exception will always be propagated.