Exemple #1
0
 def test_valid_value(self):
     field = FieldDefinitionTypeField(self.field_types)
     self.assertEqual(
         field.to_python(self.field_definition_ct.pk),
         self.field_definition_ct
     )
     self.assertEqual(
         field.to_python(self.custom_field_ct.pk),
         self.custom_field_ct
     )
     with self.assertRaises(ValidationError):
         field.to_python(self.content_type_ct.pk)
Exemple #2
0
 def test_choices(self):
     with self.assertNumQueries(0):
         field = FieldDefinitionTypeField(ContentType.objects.filter(
             pk__in=[self.field_definition_ct.pk, self.custom_field_ct.pk
                     ]).order_by('pk'),
                                          group_by_category=False,
                                          empty_label='Empty')
     self.assertEqual(
         list(field.choices),
         [('', 'Empty'), (self.field_definition_ct.pk, 'None'),
          (self.custom_field_ct.pk, ugettext('Custom description'))])
Exemple #3
0
 def test_field_definitions_valid_value(self):
     with self.assertNumQueries(0):
         field = FieldDefinitionTypeField(
             self.field_types, field_definitions=[CustomFieldDefinition])
     with self.assertRaises(ValidationError):
         field.to_python(self.field_definition_ct.pk)
     self.assertEqual(field.to_python(self.custom_field_ct.pk),
                      self.custom_field_ct)
     with self.assertRaises(ValidationError):
         field.to_python(self.content_type_ct.pk)
Exemple #4
0
def get_field_def_form(field_type_pk, model_def_queryset):
    class Meta:
        model = get_mutant_type(field_type_pk)

    form_attrs = {
        'Meta':
        Meta,
        'content_type':
        FieldDefinitionTypeField(widget=forms.HiddenInput),
        'model_def':
        forms.ModelChoiceField(queryset=model_def_queryset,
                               widget=forms.HiddenInput)
    }

    return type('FieldDefinitionForm', (forms.ModelForm, ), form_attrs)
 def test_field_definitions_valid_value(self):
     with self.assertNumQueries(0):
         field = FieldDefinitionTypeField(
             self.field_types, field_definitions=[CustomFieldDefinition]
         )
     with self.assertRaises(ValidationError):
         field.to_python(self.field_definition_ct.pk)
     self.assertEqual(
         field.to_python(self.custom_field_ct.pk),
         self.custom_field_ct
     )
     with self.assertRaises(ValidationError):
         field.to_python(self.content_type_ct.pk)
Exemple #6
0
def get_field_def_form(field_type_pk, model_def_queryset):
    class Meta:
        model = get_mutant_type(field_type_pk)

        fields = '__all__'

        queryset = ContentType.objects.filter(
            **FieldDefinition.subclasses_lookup('pk'))

    form_attrs = {
        'Meta':
        Meta,
        'content_type':
        FieldDefinitionTypeField(
            ContentType.objects.filter(
                **FieldDefinition.subclasses_lookup('pk'))),
        'model_def':
        forms.ModelChoiceField(queryset=model_def_queryset,
                               widget=forms.HiddenInput)
    }

    return type('FieldDefinitionForm', (forms.ModelForm, ), form_attrs)
Exemple #7
0
 class CustomModelForm(forms.Form):
     field_type = FieldDefinitionTypeField(self.field_types)
Exemple #8
0
 def test_invalid_field_definitions(self):
     with self.assertRaisesMessage(
             TypeError, 'is not a subclass of `FieldDefinition`'):
         FieldDefinitionTypeField(
             self.field_types, field_definitions=[FieldDefinitionTypeField])