diff --git a/tests/test_fields.py b/tests/test_fields.py index 135256320..73734d09e 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1,5 +1,7 @@ +# -*- coding: utf-8 -*- from decimal import Decimal from django.utils import timezone +from django.test.utils import override_settings from rest_framework import serializers import datetime import django @@ -22,6 +24,16 @@ class TestEmpty: field.run_validation() assert exc_info.value.detail == ['This field is required.'] + @override_settings(LANGUAGE_CODE='es') + def test_required_translated(self): + """ + By default '' is not a valid input. + """ + field = serializers.IntegerField() + with pytest.raises(serializers.ValidationError) as exc_info: + field.run_validation() + assert exc_info.value.detail == ['Este campo es obligatorio.'] + def test_not_required(self): """ If `required=False` then a field may be omitted from the input. @@ -461,9 +473,26 @@ class TestMinMaxIntegerField(FieldValues): '0': ['Ensure this value is greater than or equal to 1.'], '4': ['Ensure this value is less than or equal to 3.'], } + es_invalid_inputs = { + 0: [u'Asegúrese de que este valor es mayor o igual a 1.'], + 4: [u'Asegúrese de que este valor es menor o igual a 3.'], + '0': [u'Asegúrese de que este valor es mayor o igual a 1.'], + '4': [u'Asegúrese de que este valor es menor o igual a 3.'], + } outputs = {} field = serializers.IntegerField(min_value=1, max_value=3) + @override_settings(LANGUAGE_CODE='es') + def test_invalid_inputs_translated(self): + """ + Ensure that invalid values raise the expected validation error. + """ + field = serializers.IntegerField(min_value=1, max_value=3) + for input_value, expected_failure in get_items(self.es_invalid_inputs): + with pytest.raises(serializers.ValidationError) as exc_info: + field.run_validation(input_value) + assert exc_info.value.detail == expected_failure + class TestFloatField(FieldValues): """