def do_request(self, *args, **kwargs): store = {} tear_down_ = partial(tear_down, store) request_started.connect(set_up) request_finished.connect(tear_down_) template_rendered.connect(store_rendered_template) if message_flashed: message_flashed.connect(store_flashed_message) if self.use_session_scopes: scope = SessionScope(self.db) scope.push() try: response = super(TestApp, self).do_request(*args, **kwargs) finally: if self.use_session_scopes: scope.pop() template_rendered.disconnect(store_rendered_template) request_finished.disconnect(tear_down_) request_started.disconnect(set_up) if message_flashed: message_flashed.disconnect(store_flashed_message) response.session = store.get('session', {}) response.flashes = store.get('flashes', []) response.contexts = dict(store.get('contexts', [])) return response
def test_signals(self): """ Tests that template rendering fires the right signal. """ from flask.signals import template_rendered self._add_template("signal", "signal template") with self.test_renderer() as (app, mako): log = [] def record(*args, **extra): log.append(args) template_rendered.connect(record, app) result = render_template('signal') self.assertEqual(len(log), 1)