本文整理汇总了Python中tg.configuration.AppConfig.register_hook方法的典型用法代码示例。如果您正苦于以下问题:Python AppConfig.register_hook方法的具体用法?Python AppConfig.register_hook怎么用?Python AppConfig.register_hook使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tg.configuration.AppConfig
的用法示例。
在下文中一共展示了AppConfig.register_hook方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_config_hooks
# 需要导入模块: from tg.configuration import AppConfig [as 别名]
# 或者: from tg.configuration.AppConfig import register_hook [as 别名]
def test_config_hooks(self):
# Reset milestone so that registered hooks
milestones._reset_all()
class RootController(TGController):
@expose()
def test(self):
return 'HI!'
visited_hooks = []
def before_config_hook(app):
visited_hooks.append('before_config')
return app
def after_config_hook(app):
visited_hooks.append('after_config')
return app
conf = AppConfig(minimal=True, root_controller=RootController())
conf.register_hook('before_config', before_config_hook)
conf.register_hook('after_config', after_config_hook)
app = conf.make_wsgi_app()
app = TestApp(app)
assert 'HI!' in app.get('/test')
assert 'before_config' in visited_hooks
assert 'after_config' in visited_hooks
示例2: test_config_hooks
# 需要导入模块: from tg.configuration import AppConfig [as 别名]
# 或者: from tg.configuration.AppConfig import register_hook [as 别名]
def test_config_hooks(self):
class RootController(TGController):
@expose()
def test(self):
return 'HI!'
visited_hooks = []
def before_config_hook(app):
visited_hooks.append('before_config')
return app
def after_config_hook(app):
visited_hooks.append('after_config')
return app
def configure_new_app_hook(app):
assert isinstance(app, TGApp)
visited_hooks.append('configure_new_app')
conf = AppConfig(minimal=True, root_controller=RootController())
conf.register_hook('before_config', before_config_hook)
conf.register_hook('after_config', after_config_hook)
conf.register_hook('configure_new_app', configure_new_app_hook)
app = conf.make_wsgi_app()
app = TestApp(app)
assert 'HI!' in app.get('/test')
assert 'before_config' in visited_hooks
assert 'after_config' in visited_hooks
assert 'configure_new_app' in visited_hooks
示例3: test_global_controller_wrapper
# 需要导入模块: from tg.configuration import AppConfig [as 别名]
# 或者: from tg.configuration.AppConfig import register_hook [as 别名]
def test_global_controller_wrapper(self):
milestones._reset_all()
class RootController(TGController):
@expose()
def test(self):
return 'HI!'
wrapper_has_been_visited = []
def controller_wrapper(app_config, caller):
def call(*args, **kw):
wrapper_has_been_visited.append(True)
return caller(*args, **kw)
return call
conf = AppConfig(minimal=True, root_controller=RootController())
conf.register_hook('controller_wrapper', controller_wrapper)
conf.package = PackageWithModel()
app = conf.make_wsgi_app()
app = TestApp(app)
assert 'HI!' in app.get('/test')
assert wrapper_has_been_visited[0] is True
示例4: __init__
# 需要导入模块: from tg.configuration import AppConfig [as 别名]
# 或者: from tg.configuration.AppConfig import register_hook [as 别名]
#.........这里部分代码省略.........
if PY3: raise SkipTest()
class RootController(TGController):
@expose()
def test(self):
return str(request.environ)
package = PackageWithModel()
conf = AppConfig(minimal=True, root_controller=RootController())
conf.package = package
conf.model = package.model
conf.auth_backend = 'sqlalchemy'
conf.use_sqlalchemy = True
conf['sa_auth'] = {'authmetadata': ApplicationAuthMetadata(),
'dbsession': None,
'user_class': None,
'cookie_secret':'12345'}
conf['sqlalchemy.url'] = 'sqlite://'
app = conf.make_wsgi_app()
app = TestApp(app)
assert 'repoze.who.plugins' in app.get('/test')
self.config.auth_backend = None
def test_setup_ming_auth(self):
self.config.auth_backend = 'ming'
self.config.setup_auth()
assert 'sa_auth' in config
self.config.auth_backend = None
def test_register_hooks(self):
def dummy(*args):
pass
milestones.config_ready._reset()
self.config.register_hook('startup', dummy)
self.config.register_hook('shutdown', dummy)
self.config.register_hook('controller_wrapper', dummy)
for hook_name in self.config.hooks.keys():
self.config.register_hook(hook_name, dummy)
milestones.config_ready.reach()
for hooks in self.config.hooks.values():
assert hooks
assert self.config.call_on_startup
assert self.config.call_on_shutdown
assert self.config.controller_wrappers
@raises(TGConfigError)
def test_missing_secret(self):
self.config.auth_backend = 'sqlalchemy'
config.pop('beaker.session.secret', None)
self.config.setup_auth()
def test_controler_wrapper_setup(self):
orig_caller = self.config.controller_caller
self.config.controller_wrappers = []
self.config._setup_controller_wrappers()
assert config['controller_caller'] == orig_caller
def controller_wrapper(app_config, caller):
def call(*args, **kw):
示例5: install_gettext_callables
# 需要导入模块: from tg.configuration import AppConfig [as 别名]
# 或者: from tg.configuration.AppConfig import register_hook [as 别名]
#Enable json in expose
base_config.renderers.append('json')
#Set the default renderer
base_config.default_renderer = 'jinja'
base_config.renderers.append('jinja')
base_config.jinja_extensions = ['jinja2.ext.i18n', 'jinja2.ext.with_', 'jinja2.ext.do']
def install_gettext_callables(app):
from tg.i18n import ugettext, ungettext
jinja2_env = app_globals.config['pylons.app_globals'].jinja2_env
jinja2_env.install_gettext_callables(ugettext, ungettext)
jinja2_env.autoescape = False
return app
base_config.register_hook('after_config', install_gettext_callables)
#base_config.renderers.append('mako')
# if you want raw speed and have installed chameleon.genshi
# you should try to use this renderer instead.
# warning: for the moment chameleon does not handle i18n translations
#base_config.renderers.append('chameleon_genshi')
base_config.use_dotted_templatenames = False
#Configure the base SQLALchemy Setup
base_config.use_sqlalchemy = True
base_config.model = model
base_config.DBSession = model.DBSession
# Configure the authentication backend
示例6: on_startup
# 需要导入模块: from tg.configuration import AppConfig [as 别名]
# 或者: from tg.configuration.AppConfig import register_hook [as 别名]
#Set the default renderer
base_config.default_renderer = 'mako'
base_config.renderers.append('mako')
#Configure the base SQLALchemy Setup
base_config.use_sqlalchemy = True
base_config.model = bs.model
base_config.DBSession = bs.model.DBSession
import datetime
def on_startup():
print ' --- starting bs webserver --- (%s)' % datetime.datetime.now()
def on_shutdown():
print '--- stopping bs webserver --- (%s)' % datetime.datetime.now()
def start_app(app):
print ' --- import operations --- '
import bs.operations
print ' --- import services --- '
import bs.lib.services
return app
base_config.call_on_startup = [on_startup]
base_config.call_on_shutdown = [on_shutdown]
base_config.register_hook('before_config', start_app)