def test_init_app_ignores_unknown_options(app, os_environ): with app.app_context(): os_environ.update({'MY_SETTING': 'bar'}) init_app(app) assert 'MY_SETTING' not in app.config
def email_app(app): init_app(app) app.config['SHARED_EMAIL_KEY'] = 'Key' app.config['INVITE_EMAIL_SALT'] = 'Salt' app.config['SECRET_KEY'] = 'Secret' app.config['RESET_PASSWORD_SALT'] = 'PassSalt' yield app
def email_app(app): init_app(app) app.config['SHARED_EMAIL_KEY'] = "Key" app.config['INVITE_EMAIL_SALT'] = "Salt" app.config['SECRET_KEY'] = "Secret" app.config["RESET_PASSWORD_SALT"] = "PassSalt" yield app
def test_init_app_fails_if_integer_field_is_not_inty(app, os_environ): with app.app_context(): app.config['MY_SETTING'] = 123 os_environ.update({'MY_SETTING': 'not-numeric'}) with pytest.raises(ValueError): init_app(app)
def email_app(request, app): init_app(app) app.config['SHARED_EMAIL_KEY'] = 'Key' app.config[f'INVITE_EMAIL_{request.param}'] = 'Salt' app.config['SECRET_KEY'] = 'Secret' app.config[f'RESET_PASSWORD_{request.param}'] = 'PassSalt' yield app
def test_init_app_fails_if_boolean_field_is_not_truthy(app, os_environ): with app.app_context(): app.config['MY_SETTING'] = True os_environ.update({'MY_SETTING': 'not truthy'}) with pytest.raises(ValueError): init_app(app)
def test_init_app_updates_known_config_options(app, os_environ): with app.app_context(): app.config['MY_SETTING'] = 'foo' os_environ.update({'MY_SETTING': 'bar'}) init_app(app) assert app.config['MY_SETTING'] == 'bar'
def test_init_app_converts_truthy_to_bool(app, os_environ): with app.app_context(): app.config['MY_SETTING'] = True os_environ.update({'MY_SETTING': 'false'}) init_app(app) assert app.config['MY_SETTING'] is False
def email_app_missing_config(app): init_app(app) app.config['SHARED_EMAIL_KEY'] = TEST_SECRET_KEY app.config['INVITE_EMAIL_SALT'] = 'Salt' app.config['SECRET_KEY'] = TEST_SECRET_KEY app.config['RESET_PASSWORD_SALT'] = 'PassSalt' app.config['DM_EMAIL_BCC_ADDRESS'] = TEST_ARCHIVE_ADDRESS yield app
def test_init_app_converts_inty_to_integers(app, os_environ): with app.app_context(): app.config['MY_SETTING'] = 123 os_environ.update({'MY_SETTING': "312"}) init_app(app) assert app.config['MY_SETTING'] == 312
def email_app(app): init_app(app) app.register_blueprint(external_blueprint) app.config['SHARED_EMAIL_KEY'] = 'shared_email_key' app.config['INVITE_EMAIL_SALT'] = 'invite_email_salt' app.config['SECRET_KEY'] = 'secet_key' app.config['DM_NOTIFY_API_KEY'] = 'dm_notify_api_key' app.config['NOTIFY_TEMPLATES'] = {'create_user_account': 'this-would-be-the-id-of-the-template'} yield app
def file_app(app): init_app(app) app.config['ALLOWED_EXTENSIONS'] = ['pdf'] app.config['S3_BUCKET_NAME'] = ['testbucket'] yield app
def init_app( application, config_object, bootstrap=None, data_api_client=None, db=None, login_manager=None, search_api_client=None, error_handlers=frontend_error_handlers, ): application.config.from_object(config_object) if hasattr(config_object, 'init_app'): config_object.init_app(application) application.config.from_object(__name__) # all belong to dmutils config.init_app(application) logging.init_app(application) proxy_fix.init_app(application) request_id.init_app(application) cookie_probe.init_app(application) if bootstrap: bootstrap.init_app(application) if data_api_client: data_api_client.init_app(application) if db: db.init_app(application) if login_manager: login_manager.init_app(application) dmutils.session.init_app(application) if search_api_client: search_api_client.init_app(application) # allow us to use <safepurepath:...> components in route patterns application.url_map.converters["safepurepath"] = SafePurePathConverter @application.after_request def add_header(response): # Block sites from rendering our views inside <iframe>, <embed>, etc by default. # Individual views may set their own value (e.g. 'SAMEORIGIN') if not response.headers.get('X-Frame-Options'): response.headers.setdefault('X-Frame-Options', 'DENY') return response # Make filters accessible in templates. application.add_template_filter(filters.capitalize_first) application.add_template_filter(filters.format_links) application.add_template_filter(filters.nbsp) application.add_template_filter(filters.smartjoin) application.add_template_filter(filters.preserve_line_breaks) application.add_template_filter(filters.sub_country_codes) # Make select formats available in templates. application.add_template_filter(formats.dateformat) application.add_template_filter(formats.datetimeformat) application.add_template_filter(formats.datetodatetimeformat) application.add_template_filter(formats.displaytimeformat) application.add_template_filter(formats.shortdateformat) application.add_template_filter(formats.timeformat) application.add_template_filter(formats.utcdatetimeformat) application.add_template_filter(formats.utctoshorttimelongdateformat) @application.context_processor def inject_global_template_variables(): return dict(pluralize=pluralize, **(application.config['BASE_TEMPLATE_DATA'] or {})) for exc_or_code, handler in error_handlers.items(): application.register_error_handler(exc_or_code, handler)