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_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 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)
Ejemplo n.º 6
0
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
Ejemplo n.º 10
0
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 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 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(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)
Ejemplo n.º 18
0
def file_app(app):
    init_app(app)
    app.config['ALLOWED_EXTENSIONS'] = ['pdf']
    app.config['S3_BUCKET_NAME'] = ['testbucket']
    yield app