Skip to content

Commit

Permalink
🚚 Move flask_admin, mongo_profiler wrapper to example
Browse files Browse the repository at this point in the history
  • Loading branch information
tony committed Oct 28, 2018
1 parent fdbc32e commit edf7b5f
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 44 deletions.
39 changes: 39 additions & 0 deletions examples/flask_todo/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,43 @@ def index():
return app


def setup_flask_mongo_profiler(app):
from flask_mongo_profiler.contrib.werkzeug.mongo import QueuedMongoCommandLogger
from flask_mongo_profiler.contrib.werkzeug.werkzeug_middleware import (
ProfilerMiddleware
)
import pymongo

mongo_logger = QueuedMongoCommandLogger()
pymongo.monitoring.register(mongo_logger)
app.wsgi_app = ProfilerMiddleware(
app.wsgi_app,
pymongo_logger=mongo_logger,
ignored_url_patterns=['admin', 'favicon.ico'],
)
return app


def setup_flask_admin(app):
from flask_admin import Admin
from flask_mongo_profiler.contrib.flask_admin.views import (
profiling as profiling_views
)
from flask_mongo_profiler.contrib.mongoengine import profiling as profiling_models

admin = Admin(name='Peergrade', template_mode='bootstrap3')
admin.add_view(
profiling_views.ProfilingRequestView(
profiling_models.ProfilingRequest, category='Profiling', name='Requests'
)
)
admin.add_view(
profiling_views.ProfilingQueryView(
profiling_models.ProfilingQuery, category='Profiling', name='Queries'
)
)
admin.init_app(app)
return app


app = create_app()
50 changes: 6 additions & 44 deletions tests/test_examples.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,57 +3,19 @@

import pytest

from examples.flask_todo.app import create_app
from examples.flask_todo.app import (
create_app,
setup_flask_admin,
setup_flask_mongo_profiler,
)
from flask import url_for


def setup_profiler(app):
from flask_mongo_profiler.contrib.werkzeug.mongo import (
LoggingMongoCommandLogger,
QueuedMongoCommandLogger,
)
from flask_mongo_profiler.contrib.werkzeug.werkzeug_middleware import (
ProfilerMiddleware
)
import pymongo

mongo_logger = QueuedMongoCommandLogger()
pymongo.monitoring.register(mongo_logger)
app.wsgi_app = ProfilerMiddleware(
app.wsgi_app,
pymongo_logger=mongo_logger,
ignored_url_patterns=['admin', 'favicon.ico'],
)
return app


def setup_flask_admin(app):
from flask_admin import Admin
from flask_mongo_profiler.contrib.flask_admin.views import (
profiling as profiling_views
)
from flask_mongo_profiler.contrib.mongoengine import profiling as profiling_models

admin = Admin(name='Peergrade', template_mode='bootstrap3')
admin.add_view(
profiling_views.ProfilingRequestView(
profiling_models.ProfilingRequest, category='Profiling', name='Requests'
)
)
admin.add_view(
profiling_views.ProfilingQueryView(
profiling_models.ProfilingQuery, category='Profiling', name='Queries'
)
)
admin.init_app(app)
return app


@pytest.fixture
def app():
app = create_app()
app.debug = True
setup_profiler(app)
setup_flask_mongo_profiler(app)
setup_flask_admin(app)
return app

Expand Down

0 comments on commit edf7b5f

Please sign in to comment.