There are two reasons for context managers:
- to allow resource cleanup, even if exceptions happen
- to handle exceptions it knows about, and prevent their propagation
In the first case, exceptions should not be suppressed – if they are, that’s a bug in the context manager.
In the second case, exceptions that are handled should be suppressed (as they have been dealt with), and exceptions that are not handled should not be suppressed – if either of those are not true, that’s a bug in the context manager.
If you want to know everything that’s happening, either don’t use a context manager, write your own context manager that will track everything you are interested in, or write your own exception hook.