def test_hybrid_image_field(self): field = HybridImageField() with patch('drf_extra_fields.fields.Base64FieldMixin') as mixin_patch: field.to_internal_value({}) self.assertTrue(mixin_patch.to_internal_value.called) with patch('drf_extra_fields.fields.Base64FieldMixin') as mixin_patch: mixin_patch.to_internal_value.side_effect = ValidationError('foobar') with patch('drf_extra_fields.fields.ImageField') as image_patch: field.to_internal_value({}) self.assertTrue(mixin_patch.to_internal_value.called) self.assertTrue(image_patch.to_internal_value.called)
class AddShoppingItemSerializer(serializers.ModelSerializer): included_serializers = { 'user': '******', } # This field allows the receipt of a bit stream from Android image = HybridImageField() class Meta: model = ShoppingItem fields = ( # Attributes 'name', 'image', 'price', # Foreign Key 'user', )
class DadosCriancaCreateSerializer(serializers.ModelSerializer): sexo_crianca = serializers.ChoiceField(choices=DadosCrianca.SEXO) filiacao1_sexo = serializers.ChoiceField(choices=DadosCrianca.SEXO) filiacao2_sexo = serializers.ChoiceField(choices=DadosCrianca.SEXO) raca_cor_crianca = serializers.ChoiceField(choices=DadosCrianca.RACA_COR) tipo_responsavel = serializers.ChoiceField( choices=DadosCrianca.TIPO_RESPONSAVEL) certidao_crianca = HybridImageField(required=True) class Meta: model = DadosCrianca fields = ('nome_crianca', 'sexo_crianca', 'nacionalidade_crianca', 'dt_entrada_brasil', 'dt_nasc_crianca', 'uf_nasc_crianca', 'municipio_nasc_crianca', 'raca_cor_crianca', 'tem_nee', 'tipo_nee', 'filiacao1_nome', 'filiacao1_falecido', 'filiacao1_sexo', 'filiacao1_nacionalidade', 'filiacao2_consta', 'filiacao2_nome', 'filiacao2_falecido', 'filiacao2_sexo', 'filiacao2_nacionalidade', 'cep_moradia', 'endereco_moradia', 'numero_moradia', 'complemento_moradia', 'tipo_responsavel', 'parentesco_responsavel', 'nome_responsavel', 'cpf_responsavel', 'dt_nasc_responsavel', 'email_responsavel', 'telefone_responsavel', 'telefone_opcional', 'certidao_crianca', 'irmao_na_rede', 'nome_irmao') def validate_certidao_crianca(self, value): if not value: raise serializers.ValidationError("Certidão deve ser enviado") return value def validate(self, attrs): for campo in DadosCrianca.CAMPOS_PRA_NORMALIZAR: try: attrs[campo] = remover_acentos(str(attrs[campo]).upper()) except KeyError as e: attrs[campo] = '' return attrs