def __call__(self, result=None): """ performing setup here means subclasses don't have to call `super.setUp()` """ try: self._pre_setup() TestCase.__call__(self, result) finally: self._post_teardown()