示例#1
0
    def test_read_defaults(self):
        handler = SettingsHandler()
        handler.widget_class = SimpleWidget

        defaults = {'a': 5, 'b': {1: 5}}
        with self.override_default_settings(SimpleWidget, defaults):
            handler.read_defaults()

        self.assertEqual(handler.defaults, defaults)
示例#2
0
    def test_read_defaults_ensures_no_schema_only(self):
        handler = SettingsHandler()
        handler.widget_class = SimpleWidget
        handler.provider = SettingProvider(SimpleWidget)

        def migrate_settings(settings, _):
            settings["setting"] = 5
            settings["schema_only_setting"] = True

        with patch.object(SimpleWidget, "migrate_settings", migrate_settings), \
             override_default_settings(SimpleWidget, {"value": 42}):
            handler.read_defaults()
            self.assertEqual(handler.defaults, {'value': 42, 'setting': 5})
示例#3
0
    def test_read_defaults_migrates_settings(self):
        handler = SettingsHandler()
        handler.widget_class = SimpleWidget

        migrate_settings = Mock()
        with patch.object(SimpleWidget, "migrate_settings", migrate_settings):
            # Old settings without version
            settings = {"value": 5}
            with override_default_settings(SimpleWidget, settings):
                handler.read_defaults()
            migrate_settings.assert_called_with(settings, 0)

            migrate_settings.reset()
            # Settings with version
            settings_with_version = dict(settings)
            settings_with_version[VERSION_KEY] = 1
            with override_default_settings(SimpleWidget, settings_with_version):
                handler.read_defaults()
            migrate_settings.assert_called_with(settings, 1)