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)
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'))])
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)
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)
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)
class CustomModelForm(forms.Form): field_type = FieldDefinitionTypeField(self.field_types)
def test_invalid_field_definitions(self): with self.assertRaisesMessage( TypeError, 'is not a subclass of `FieldDefinition`'): FieldDefinitionTypeField( self.field_types, field_definitions=[FieldDefinitionTypeField])