def _record_context_functions(self): description = session.closest('description') setup = self.calling_frame.f_locals.get('setup', None) teardown = self.calling_frame.f_locals.get('teardown', None) if description and not description.setup_func and setup: description.setup_func = setup del self.calling_frame.f_locals['setup'] if description and not description.teardown_func and teardown: description.teardown_func = teardown del self.calling_frame.f_locals['teardown']
def __exit__(self, type_, value, traceback): self._teardown() if self.setup_exc_info: type_, value, traceback = self.setup_exc_info elif self.teardown_exc_info: type_, value, traceback = self.teardown_exc_info closest_runner = session.closest('runner') if closest_runner: closest_runner.handle_result((type_, value, traceback)) session.pop() return True