1class ProtectedSection:
 2    """A context manager that allows us to execute a relatively error-free block of code."""
 3    def __init__(self, log=(), suppress=()):
 4        self.log = log
 5        self.suppress = suppress
 6        self.exception = None
 7
 8    def __enter__(self):
 9        return self
10
11    def __exit__(self, exc_type, exc_value, exc_tb):
12        if exc_type is not None:
13            if exc_type in self.log:
14                self.exception = exc_value
15                return True
16            elif exc_type in self.suppress:
17                return True
18        return False
.F
======================================================================
FAIL: test_special_cases (test.TestSolution.test_special_cases)
Test special cases to show you that you missed something.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/test.py", line 128, in test_special_cases
    self.assertIsNone(cm.exception)
AssertionError: ZeroDivisionError('division by zero') is not None
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (failures=1)