def test_generate_form_to_string(): form = generate_form(OrderedDict([ ('z', '<b>lol</b>'), ('c', 'lol'), ('a', 2), ('e', Decimal('1.0')), ('f', datetime(2015, 10, 10, 10, 10, 10)), ])) assert "\n".join(formstring_from_formclass(form())) == """class ZCAEFForm(forms.Form):
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}
def test_generate_form_duration_field(): data = { 'timedelta': timedelta(days=2), } form_class = generate_form(data) validate_data = { 'timedelta': '1', } form = form_class(data=validate_data) valid = form.is_valid() assert form.errors == {} assert form.cleaned_data == { 'timedelta': timedelta(0, 1), } assert valid is True
def validate_as_dict(key, value): """ Returns `True` if it's a dict we can generate a form for, `False` if it's not, or an Error instance comes out of the form. """ try: validate_default(value) form = generate_form(value) except ValidationError: return None try: validate_formish(form) return form except ValidationError: return None # E007(obj=key)
def test_generate_form_mediastorage_becomes_staticfileschoicefield(): form = generate_form({'field': settings.DEFAULT_FILE_STORAGE})() assert isinstance(form.fields['field'], DefaultStorageFilesChoiceField) is True
def test_generate_form_float_becomes_floatfield(): form = generate_form({'field': 1.5})() assert isinstance(form.fields['field'], fields.FloatField) is True
def test_generate_form_without_sorting(): form = generate_form(OrderedDict([ ('z',1), ('a', 2), ])) assert tuple(form.base_fields.keys()) == ('z', 'a')
def test_generate_form_timeish_string_becomes_timefield(): form = generate_form({'field': '01:01:01'})() assert isinstance(form.fields['field'], fields.TimeField) is True
def test_generate_form_slugish_string_has_invalid_slug_chars_slugfield2(): form = generate_form({'field': 'a-b '})() assert isinstance(form.fields['field'], fields.SlugField) is False assert isinstance(form.fields['field'], fields.CharField) is True
def test_generate_form_queryset_becomes_modelmultiplechoicefield(): form = generate_form({'field': get_user_model().objects.all()})() assert isinstance(form.fields['field'], ModelMultipleChoiceField) is True
def test_generate_form_decimalish_string_becomes_decimalfield(): form = generate_form({'field': '1.0'})() assert isinstance(form.fields['field'], fields.DecimalField) is True
def test_generate_form_set_becomes_choicefield(): form = generate_form({'field': {'a', 'b', 'c'}})() assert isinstance(form.fields['field'], fields.ChoiceField) is True
def test_generate_form_model_becomes_modelchoicefield(): form = generate_form({'field': get_user_model()(pk=1)})() assert isinstance(form.fields['field'], ModelChoiceField) is True
def test_generate_form_ordereddict_becomes_choicefield(): form = generate_form({'field': OrderedDict([ ['1', '2'], ['2', '4'], ])})() assert isinstance(form.fields['field'], fields.ChoiceField) is True
def test_generate_form_tuple_becomes_multiplechoicefield(): form = generate_form({'field': ('a', 'b')})() assert isinstance(form.fields['field'], fields.MultipleChoiceField) is True
def test_generate_form_bool_becomes_booleanfield(): form = generate_form({'field': True})() assert isinstance(form.fields['field'], fields.BooleanField) is True
def test_generate_form_mediaurl_startswith_becomes_staticfileschoicefield(): form = generate_form({'field': '%s/test' % settings.MEDIA_URL})() assert isinstance(form.fields['field'], PartialDefaultStorageFilesChoiceField) is True
def test_generate_form_regex_becomes_regexfield(): form = generate_form({'field': re.compile('')})() assert isinstance(form.fields['field'], fields.RegexField) is True
def test_generate_form_slugish_string_becomes_slugfield(): form = generate_form({'field': 'a-b'})() assert isinstance(form.fields['field'], fields.SlugField) is True
def test_generate_form_ipish_string_becomes_genericipfield(): form = generate_form({'field': '127.0.0.1'})() assert isinstance(form.fields['field'], fields.GenericIPAddressField) is True
def test_generate_form_dateish_string_becomes_datefield(): form = generate_form({'field': '01/01/2016'})() assert isinstance(form.fields['field'], fields.DateField) is True
def test_generate_form_urlish_string_becomes_urlfield(): form = generate_form({'field': 'https://news.bbc.co.uk/'})() assert isinstance(form.fields['field'], fields.URLField) is True
def test_generate_form_intish_string_becomes_integerfield(): form = generate_form({'field': '1'})() assert isinstance(form.fields['field'], fields.IntegerField) is True
def test_generate_form_emailish_string_becomes_emailfield(): form = generate_form({'field': '*****@*****.**'})() assert isinstance(form.fields['field'], fields.EmailField) is True
def test_generate_form_with_sorting(): form = generate_form({'z':1, 'a': 2}) assert tuple(form.base_fields.keys()) == ('a', 'z')
def test_generate_form_none_becomes_nullbooleanfield(): form = generate_form({'field': None})() assert isinstance(form.fields['field'], fields.NullBooleanField)
def test_generate_form_date_becomes_datefield(): form = generate_form({'field': datetime.now().date()})() assert isinstance(form.fields['field'], fields.DateField) is True
def test_generate_form_staticurl_startswith_becomes_staticfileschoicefield(): form = generate_form({'field': '%s/test' % settings.STATIC_URL})() assert isinstance(form.fields['field'], PartialStaticFilesChoiceField) is True
def test_generate_form_staticstorage_becomes_staticfileschoicefield(): form = generate_form({'field': settings.STATICFILES_STORAGE})() assert isinstance(form.fields['field'], StaticFilesChoiceField) is True
def test_generate_form_time_becomes_timefield(): form = generate_form({'field': time(4, 23)})() assert isinstance(form.fields['field'], fields.TimeField) is True