def test_new_delayed_construction_with_default(self): app = Flask(__name__) ext = KVSessionExtension(self.store) ext.init_app(app) self.assertIs(self.store, app.kvsession_store)
def test_new_delayed_construction(self): app = Flask(__name__) ext = KVSessionExtension() with self.assertRaises(ValueError): ext.init_app(app) ext.init_app(app, self.store) self.assertIs(self.store, app.kvsession_store)
def create_app(store): app = Flask(__name__) app.kvsession = KVSessionExtension(store, app) @app.route('/') def index(): return 'nothing to see here, move along' @app.route('/store-in-session/<key>/<value>/') def store(key, value): session[key] = value return 'stored %r at %r' % (value, key) @app.route('/store-datetime/') def store_datetime(): t = datetime(2011, 8, 10, 15, 46, 00) session['datetime_key'] = t return 'ok' @app.route('/delete-from-session/<key>/') def delete(key): del session[key] return 'deleted %r' % key @app.route('/destroy-session/') def destroy(): session.destroy() return 'session destroyed' @app.route('/make-session-permanent/') def make_permanent(): session.permanent = True return 'made session permanent' @app.route('/dump-session/') def dump(): return json.dumps(dict(session)) @app.route('/dump-datetime/') def dump_datetime(): return str(session['datetime_key']) @app.route('/regenerate-session/') def regenerate(): session.regenerate() return 'session regenerated' @app.route('/is-kvsession/') def is_kvsession(): return str(isinstance(session._get_current_object(), KVSession)) @app.route('/is-new-session/') def is_new_session(): return str(session.new) return app
def test_first_request(self): store = DictStore() app = Flask(__name__) app.config['SECRET_KEY'] = 'topsecret' KVSessionExtension(store, app) @app.route('/') def index(): session.regenerate() return 'OK' client = app.test_client() client.get('/')
from flask import Flask from flask.ext.login import LoginManager from flask.ext.sqlalchemy import SQLAlchemy from simplekv.db.sql import SQLAlchemyStore from flask.ext.kvsession import KVSessionExtension from config import * APP_ROOT = os.path.dirname(os.path.abspath(__file__)) app = Flask(__name__, static_url_path='') lm = LoginManager() lm.init_app(app) app.config.from_object(DevelopmentConfig) db = SQLAlchemy(app) store = SQLAlchemyStore(db.engine, db.metadata, 'sessions') kvsession = KVSessionExtension(store, app) if not app.debug and os.environ.get('HEROKU') is None: import logging from logging.handlers import RotatingFileHandler file_handler = RotatingFileHandler('tmp/microblog.log', 'a', 1 * 1024 * 1024, 10) file_handler.setLevel(logging.INFO) file_handler.setFormatter( logging.Formatter( '%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]' )) app.logger.addHandler(file_handler) app.logger.setLevel(logging.INFO) app.logger.info('microblog startup')
# coding:utf-8 from flask import Flask # from flask.ext.socketio import SocketIO from .wsy_redis_socketio import WsySocketIO as SocketIO from flask.ext.kvsession import KVSessionExtension from simplekv.memory.redisstore import RedisStore from simplekv.decorator import PrefixDecorator from .redis_link import rc store = RedisStore(rc) prefixed_store = PrefixDecorator('sessions_', store) socketio = SocketIO() kvsession = KVSessionExtension() def create_app(): """Create an application.""" app = Flask(__name__) app.config['SECRET_KEY'] = 'gjr39dkjn344_!67#' # app.config['DEBUG'] = True from .main import main as main_blueprint app.register_blueprint(main_blueprint) socketio.init_app(app) kvsession.init_app(app, prefixed_store) return app
# instantiate flask app app = Flask(__name__, static_folder='static', template_folder='templates', static_url_path='/static') # get configuration from a non-repo file specified # in this envvar try: app.config.from_envvar('MAPROULETTE_SETTINGS') except Exception: # alternate config file location for local development app.config.from_pyfile(join(expanduser('~'), '.maproulette/config.py')) # set up the ORM engine and database object engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'], convert_unicode=True) Base = declarative_base() db = SQLAlchemy(app) if not app.debug: import logging logging.basicConfig( filename=app.config['LOGFILE'], level=app.config['LOGLEVEL']) from maproulette import models, views, oauth, api # connect flask app to server KV session store KVSessionExtension(session_store, app)