Example #1
0
def test_settings_append_installed_apps(django_settings):
    module_mock = ModuleType("module_mock")
    plugin_mock = MagicMock(settings_module=None, module_path="test")
    plugins = [plugin_mock]
    with patch("kolibri.plugins.utils.settings.registered_plugins", plugins):
        apply_settings(module_mock)
        assert getattr(module_mock, "INSTALLED_APPS")[0].name == "test"
Example #2
0
def test_settings_set_setting(_apply_base_settings, django_settings):
    module_mock = ModuleType("module_mock")
    setting = "TEST"
    plugin_settings_mock = ModuleType("settings_mock")
    setattr(plugin_settings_mock, setting, False)
    plugin_mock = MagicMock(settings_module=plugin_settings_mock)
    plugins = [plugin_mock]
    with patch("kolibri.plugins.utils.settings.registered_plugins", plugins):
        apply_settings(module_mock)
        assert getattr(module_mock, setting) is False
Example #3
0
def test_settings_append_tuple_setting_when_not_exist(_apply_base_settings,
                                                      django_settings):
    module_mock = ModuleType("module_mock")
    setting = "INSTALLED_APPS"
    plugin_settings_mock = ModuleType("settings_mock")
    setattr(plugin_settings_mock, setting, ("second", ))
    plugin_mock = MagicMock(settings_module=plugin_settings_mock)
    plugins = [plugin_mock]
    with patch("kolibri.plugins.utils.settings.registered_plugins", plugins):
        apply_settings(module_mock)
        assert getattr(module_mock, setting) == ("second", )
def test_settings_ignore_setting_if_lower_case(django_settings):
    module_mock = ModuleType("module_mock")
    setting = "test"
    plugin_mock = MagicMock()
    plugin_settings_mock = ModuleType("settings_mock")
    setattr(plugin_settings_mock, setting, False)
    plugin_mock.settings_module.return_value = plugin_settings_mock
    plugins = [plugin_mock]
    with patch("kolibri.plugins.utils.settings.registered_plugins", plugins):
        apply_settings(module_mock)
        assert hasattr(module_mock, setting) is False
Example #5
0
def test_settings_raise_if_tuple_setting_not_tuple(_apply_base_settings,
                                                   django_settings):
    module_mock = ModuleType("module_mock")
    setting = "INSTALLED_APPS"
    setattr(module_mock, setting, tuple())
    plugin_settings_mock = ModuleType("settings_mock")
    setattr(plugin_settings_mock, setting, "app")
    plugin_mock = MagicMock(settings_module=plugin_settings_mock)
    plugins = [plugin_mock]
    with patch("kolibri.plugins.utils.settings.registered_plugins", plugins):
        with pytest.raises(ValueError):
            apply_settings(module_mock)
Example #6
0
def test_settings_raise_if_overwrite_base_setting(_apply_base_settings,
                                                  django_settings):
    module_mock = ModuleType("module_mock")
    setting = "TEST"
    setattr(module_mock, setting, True)
    plugin_settings_mock = ModuleType("settings_mock")
    setattr(plugin_settings_mock, setting, False)
    plugin_mock = MagicMock(settings_module=plugin_settings_mock)
    plugins = [plugin_mock]
    with patch("kolibri.plugins.utils.settings.registered_plugins", plugins):
        with pytest.raises(ValueError):
            apply_settings(module_mock)
Example #7
0
def test_settings_not_append_locale_path_internal(django_settings):
    module_mock = ModuleType("module_mock")
    plugin_mock = MagicMock(settings_module=None, module_path="kolibri.test")
    plugins = [plugin_mock]
    with patch(
            "kolibri.plugins.utils.settings.registered_plugins", plugins
    ), patch(
            "kolibri.plugins.utils.settings.i18n.get_installed_app_locale_path",
            return_value="test",
    ), patch("kolibri.plugins.utils.settings.AppConfig"):
        apply_settings(module_mock)
        assert not hasattr(module_mock, "LOCALE_PATHS")
def test_settings_append_tuple_setting(django_settings):
    module_mock = ModuleType("module_mock")
    setting = "INSTALLED_APPS"
    setattr(module_mock, setting, ("first", ))
    plugin_mock = MagicMock()
    plugin_settings_mock = ModuleType("settings_mock")
    setattr(plugin_settings_mock, setting, ("second", ))
    plugin_mock.settings_module.return_value = plugin_settings_mock
    plugins = [plugin_mock]
    with patch("kolibri.plugins.utils.settings.registered_plugins", plugins):
        apply_settings(module_mock)
        assert getattr(module_mock, setting) == ("first", "second")
Example #9
0
def test_settings_warn_if_two_plugins_set_setting(_apply_base_settings,
                                                  django_settings):
    module_mock = ModuleType("module_mock")
    setting = "TEST"
    plugin_settings_mock = ModuleType("settings_mock")
    setattr(plugin_settings_mock, setting, True)
    plugin_mock1 = MagicMock(settings_module=plugin_settings_mock,
                             module_path="test1")
    plugin_mock2 = MagicMock(settings_module=plugin_settings_mock,
                             module_path="test2")
    plugins = [plugin_mock1, plugin_mock2]
    with patch("kolibri.plugins.utils.settings.registered_plugins", plugins):
        with patch("kolibri.plugins.utils.settings.warnings") as warnings_mock:
            apply_settings(module_mock)
            assert warnings_mock.warn.called
Example #10
0
# System warnings to disable
# see https://docs.djangoproject.com/en/1.9/ref/settings/#silenced-system-checks
SILENCED_SYSTEM_CHECKS = ["auth.W004"]

# Configuration for Django JS Reverse
# https://github.com/ierror/django-js-reverse#options

JS_REVERSE_EXCLUDE_NAMESPACES = ["admin"]

ENABLE_DATA_BOOTSTRAPPING = True

# Session configuration

SESSION_ENGINE = "django.contrib.sessions.backends.file"

SESSION_FILE_PATH = os.path.join(conf.KOLIBRI_HOME, "sessions")

if not os.path.exists(SESSION_FILE_PATH):
    if not os.path.exists(conf.KOLIBRI_HOME):
        raise RuntimeError("The KOLIBRI_HOME dir does not exist")
    os.mkdir(SESSION_FILE_PATH)

SESSION_COOKIE_NAME = "kolibri"

SESSION_EXPIRE_AT_BROWSER_CLOSE = True

SESSION_COOKIE_AGE = 1200

apply_settings(sys.modules[__name__])
Example #11
0
def test_settings_module_validate_import_string(_apply_base_settings,
                                                django_settings):
    with patch("kolibri.plugins.utils.settings.importlib") as import_mock:
        apply_settings("test")
        assert import_mock.import_module.called
Example #12
0
def test_settings_module_validate_not_module_or_string(_apply_base_settings,
                                                       django_settings):
    with pytest.raises(TypeError):
        apply_settings(0)
Example #13
0
def test_settings_module_validate_string(_apply_base_settings,
                                         django_settings):
    with pytest.raises(ValueError):
        apply_settings("")
Example #14
0
def test_settings_error_if_configured(_apply_base_settings):
    with pytest.raises(RuntimeError):
        apply_settings("")