def csrf_app(request):
"""py.test fixture to set up a dummy app for CSRF testing.
:param request: pytest's FixtureRequest (internal class, cannot be hinted on a signature)
"""
session = DummySession()
config = testing.setUp()
config.set_default_csrf_options(require_csrf=True)
config.add_route("home", "/")
config.add_route("csrf_sample", "/csrf_sample")
config.add_route("csrf_exempt_sample", "/csrf_exempt_sample")
config.add_route("csrf_exempt_sample_context", "/csrf_exempt_sample_context")
config.add_route("csrf_sample_double_argument", "/csrf_sample_double_argument/{arg}")
config.add_route("csrf_exempt_sample_double_argument", "/csrf_exempt_sample_double_argument/{arg}")
config.scan(csrfsamples)
# We need sessions in order to use CSRF feature
def dummy_session_factory(secret):
# Return the same session over and over again
return session
config.set_session_factory(dummy_session_factory)
def teardown():
testing.tearDown()
app = TestApp(config.make_wsgi_app())
# Expose session data for tests to read
app.session = session
return app
评论列表
文章目录