def record_flashes(app): recorded = [] def record(sender, message, category, **extra): recorded.append(message) message_flashed.connect(record, app) yield recorded message_flashed.disconnect(record, app)
def flashed(app): """Return information about messages flashed""" with app.test_client() as client: flashes = [] def on_message_flashed(sender, category, message): flashes.append((message, category)) message_flashed.connect(on_message_flashed) yield flashes
def capture_flashes(self): if hasattr(self, '_captured_flashes'): # nested call to this context manager -- just pass through yield self._captured_flashes return self._captured_flashes = [] def record(sender, message, category, **extra): self._captured_flashes.append((message, category)) message_flashed.connect(record, self.app) try: yield self._captured_flashes finally: message_flashed.disconnect(record, self.app) del self._captured_flashes
def flashes(request, app): Record = collections.namedtuple("Record", "message category") records = [] def record(sender, message, category, **extra): records.append(Record(message, category)) message_flashed.connect(record, app) def teardown(): message_flashed.disconnect(record, app) request.addfinalizer(teardown) return records
def _pre_setup(self): self.app = self.create_app() self._orig_response_class = self.app.response_class self.app.response_class = _make_test_response(self.app.response_class) self.client = self.app.test_client() if not self.render_templates: # Monkey patch the original template render with a empty render self._original_template_render = templating._render templating._render = _empty_render self.templates = [] self.flashed_messages = [] if _is_signals: template_rendered.connect(self._add_template) if _is_message_flashed: message_flashed.connect(self._add_flash_message)
def _pre_setup(self): self.app = self.create_app() self._orig_response_class = self.app.response_class self.app.response_class = _make_test_response(self.app.response_class) self.client = self.app.test_client() self._ctx = self.app.test_request_context() self._ctx.push() if not self.render_templates: # Monkey patch the original template render with a empty render self._original_template_render = templating._render templating._render = _empty_render self.templates = [] self.flashed_messages = [] if _is_signals: template_rendered.connect(self._add_template) if _is_message_flashed: message_flashed.connect(self._add_flash_message)
def __enter__(self): self.templates = [] self.flashed_messages = [] template_rendered.connect(self._add_template) message_flashed.connect(self._add_flash_message) return self
drop_db(db) @app.cli.command('anonymizedb') def anonymizedb_command(): anonymize_db(db) def flash_save_eventlog(unused_sender, message, category, **unused_extra): is_important = False if category in ['danger', 'warning']: is_important = True _event_log(unicode(message), is_important) message_flashed.connect(flash_save_eventlog, app) lm = LoginManager() lm.init_app(app) ploader = Pluginloader('plugins') @app.teardown_appcontext def shutdown_session(unused_exception=None): db.session.remove() @lm.user_loader def load_user(user_id): from .models import User
def setUp(self): message_flashed.connect(self._add_flash_message) self.client = app.test_client()
from datetime import datetime from flask.ext.sqlalchemy import get_debug_queries from config import ProfileConfig import logging # @app.after_request # def after_request(response): # for query in get_debug_queries(): # if query.duration >= ProfileConfig.DATABASE_QUERY_TIMEOUT: # app.logger.warning("SLOW QUERY: %s\nParameters: %s\nDuration: %fs\nContext: %s\n" % (query.statement, query.parameters, query.duration, query.context)) # return response def log_request(sender, **params): logging.debug(params.items()) message_flashed.connect(log_request, app) @app.route('/') def index(): posts = Post.query.all() if g.user: posts = Post.query.filter_by(user_id=g.user.id) return render_template('index.html', posts=posts) @lastuser.requires_login @app.route('/add', methods=['POST']) def add(): post = Post(body=request.form['body'], timestamp=datetime.utcnow(), author=g.user) db.session.add(post) db.session.commit() flash('New entry was successfully posted')