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
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.registry.settings["pyramid.require_default_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