mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 11:30:12 +03:00
minor error message typos. ConfigurationError caught and raised as ValidationError. Tests
This commit is contained in:
parent
1adbd96ba5
commit
0705671731
|
@ -51,7 +51,10 @@ class GenericRelatedField(serializers.WritableField):
|
|||
|
||||
def from_native(self, value):
|
||||
# Get the serializer responsible for input resolving
|
||||
try:
|
||||
serializer = self.determine_serializer_for_data(value)
|
||||
except ConfigurationError as e:
|
||||
raise ValidationError(e)
|
||||
serializer.initialize(self.parent, self.source)
|
||||
return serializer.from_native(value)
|
||||
|
||||
|
@ -73,12 +76,12 @@ class GenericRelatedField(serializers.WritableField):
|
|||
serializer.from_native(value)
|
||||
# Collects all serializers that can handle the input data.
|
||||
serializers.append(serializer)
|
||||
except Exception:
|
||||
except:
|
||||
pass
|
||||
# If no serializer found, raise error.
|
||||
l = len(serializers)
|
||||
if l < 1:
|
||||
raise ConfigurationError('Could not determine a valid serializer for value "%r"' % value)
|
||||
raise ConfigurationError('Could not determine a valid serializer for value %r.' % value)
|
||||
elif l > 1:
|
||||
raise ConfigurationError('There were multiple serializers found for value "%r"' % value)
|
||||
raise ConfigurationError('There were multiple serializers found for value %r.' % value)
|
||||
return serializers[0]
|
||||
|
|
|
@ -243,7 +243,9 @@ class TestGenericRelatedFieldSerialization(TestCase):
|
|||
'tag': 'reminder',
|
||||
'tagged_item': 'just a string'
|
||||
})
|
||||
self.assertRaises(ConfigurationError, serializer.is_valid)
|
||||
|
||||
with self.assertRaises(ConfigurationError):
|
||||
serializer.fields['tagged_item'].determine_serializer_for_data('just a string')
|
||||
|
||||
def test_not_registered_view_name(self):
|
||||
class TagSerializer(serializers.ModelSerializer):
|
||||
|
@ -262,7 +264,7 @@ class TestGenericRelatedFieldSerialization(TestCase):
|
|||
self.assertFalse(serializer.is_valid())
|
||||
|
||||
def test_invalid_url(self):
|
||||
# Should fail ATM
|
||||
|
||||
class TagSerializer(serializers.ModelSerializer):
|
||||
tagged_item = GenericRelatedField({
|
||||
Bookmark: serializers.HyperlinkedRelatedField(view_name='bookmark-detail'),
|
||||
|
@ -276,7 +278,13 @@ class TestGenericRelatedFieldSerialization(TestCase):
|
|||
'tag': 'reminder',
|
||||
'tagged_item': 'foo-bar'
|
||||
})
|
||||
|
||||
expected = {
|
||||
'tagged_item': ['Could not determine a valid serializer for value %r.' % 'foo-bar']
|
||||
}
|
||||
|
||||
self.assertFalse(serializer.is_valid())
|
||||
self.assertEqual(expected, serializer.errors)
|
||||
|
||||
def test_serializer_save(self):
|
||||
class TagSerializer(serializers.ModelSerializer):
|
||||
|
|
Loading…
Reference in New Issue
Block a user