230
230
revlog_ui = branch_app.lookup_app(env)
231
231
self.assertOkJsonResponse(revlog_ui, env)
234
class TestControllerHooks(BasicTests):
236
def test_dummy_hook(self):
238
# A hook that returns None doesn't influence the searching for
240
env = {'SCRIPT_NAME': '', 'PATH_INFO': '/custom'}
241
myhook = lambda app, environ: None
242
branch = self.make_branch('.')
243
self.addCleanup(branch.lock_read().unlock)
244
app = self.make_branch_app(branch)
245
self.addCleanup(BranchWSGIApp.hooks.uninstall_named_hook, 'controller',
247
BranchWSGIApp.hooks.install_named_hook('controller', myhook, "captain hook")
248
self.assertRaises(KeyError, app.lookup_app, env)
250
def test_working_hook(self):
251
# A hook that returns None doesn't influence the searching for
253
env = {'SCRIPT_NAME': '', 'PATH_INFO': '/custom'}
254
myhook = lambda app, environ: "I am hooked"
255
branch = self.make_branch('.')
256
self.addCleanup(branch.lock_read().unlock)
257
app = self.make_branch_app(branch)
258
self.addCleanup(BranchWSGIApp.hooks.uninstall_named_hook, 'controller',
260
BranchWSGIApp.hooks.install_named_hook('controller', myhook, "captain hook")
261
self.assertEquals("I am hooked", app.lookup_app(env))