def form(key): class ListPerPageForm(Form): count = IntegerField(initial=25, min_value=1, max_value=99) registry.register(key, ListPerPageForm, {'amdefault': None}) try: yield ListPerPageForm finally: registry.unregister(key)
def userform(key): class ModelChoicesForm(Form): single_user = ModelChoiceField(queryset=get_user_model().objects.all()) many_users = ModelMultipleChoiceField(queryset=get_user_model().objects.all()) another = IntegerField(min_value=1, max_value=5) registry.register(key, ModelChoicesForm) try: yield ModelChoicesForm finally: registry.unregister(key)
def fake_keys(*args): class ListPerPageForm(Form): count = IntegerField(min_value=1, max_value=99) for key in args: registry.register(key, ListPerPageForm) try: yield finally: for key in args: registry.unregister(key)
def test_defaults_mapped_over_db_values(): test_value = {'testing': 1, 'count': 2} # this emulates an old value whose defaults have since been updated. RuntimeSetting.objects.create(key="TESTX", raw_value=json.dumps(test_value)) test_value.update(another=1.2) form_class = generate_form(test_value) registry.register('TESTX', form_class, {'another': 4.2}) wrapper = RuntimeSettingWrapper() value = wrapper.TESTX registry.unregister('TESTX') assert value == {'count': 2, 'testing': 1, 'another': 4.2}