コード例 #1
0
def test_runtimesettingswrapper():
    test_value = {'testing': 1, 'count': 2}
    test2_value = {'testing': 1, 'count': 4}
    RuntimeSetting.objects.create(key="TEST", raw_value=json.dumps(test_value))
    RuntimeSetting.objects.create(key="TEST2", raw_value=json.dumps(test2_value))

    class ListPerPageForm(Form):
        count = IntegerField(initial=25, min_value=1, max_value=99)

    registry.register('TEST', ListPerPageForm, {'count': '3'})
    registry.register('TEST_DEFAULT', ListPerPageForm, {'count': '14'})

    wrapped = RuntimeSettingWrapper()
    assert wrapped['TEST'] == {'count': 2}
    assert wrapped['TEST_DEFAULT'] == {'count': 14}

    # new values won't be discovered until the existing data is updated
    RuntimeSetting.objects.create(key="TEST_DEFAULT",
                                  raw_value=json.dumps(test2_value))
    assert wrapped['TEST_DEFAULT'] == {'count': 14}
    wrapped2 = RuntimeSettingWrapper()
    assert wrapped2['TEST_DEFAULT'] == {'count': 4}
    assert bool(wrapped) is True
    assert 'TEST' in wrapped
    assert wrapped.TEST == {'count': 2}
    data = set(x for x, v in wrapped)
    assert data == {'TEST', 'TEST_DEFAULT'}
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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}