'Wrapper around default __call__ method to perform common Django test
set up. This means that user-defined Test Cases aren\'t required to
include a call to super().setUp().'

def __call__(self, result=None):

    self.client = Client()
    try:
        self._pre_setup()
    except (KeyboardInterrupt, SystemExit):
        raise
    except Exception:
        import sys
        result.addError(self, sys.exc_info())
        return
    super(TransactionTestCase, self).__call__(result)
    try:
        self._post_teardown()
    except (KeyboardInterrupt, SystemExit):
        raise
    except Exception:
        import sys
        result.addError(self, sys.exc_info())
        return
