Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
 def __enter__(self):
     self.templates = []
     self.flashed_messages = []
     template_rendered.connect(self._add_template)
     message_flashed.connect(self._add_flash_message)
     return self
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
 def setUp(self):
     message_flashed.connect(self._add_flash_message)
     self.client = app.test_client()
Ejemplo n.º 11
0
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')