mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-03 05:04:31 +03:00
Test for custom fields
This commit is contained in:
parent
87734be5f4
commit
3bc628edc0
|
@ -17,6 +17,10 @@ def dedent(blocktext):
|
||||||
|
|
||||||
# Testing regular field mappings
|
# Testing regular field mappings
|
||||||
|
|
||||||
|
class CustomField(models.Field):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class RegularFieldsModel(models.Model):
|
class RegularFieldsModel(models.Model):
|
||||||
auto_field = models.AutoField(primary_key=True)
|
auto_field = models.AutoField(primary_key=True)
|
||||||
big_integer_field = models.BigIntegerField()
|
big_integer_field = models.BigIntegerField()
|
||||||
|
@ -37,6 +41,7 @@ class RegularFieldsModel(models.Model):
|
||||||
text_field = models.TextField()
|
text_field = models.TextField()
|
||||||
time_field = models.TimeField()
|
time_field = models.TimeField()
|
||||||
url_field = models.URLField(max_length=100)
|
url_field = models.URLField(max_length=100)
|
||||||
|
custom_field = CustomField()
|
||||||
|
|
||||||
def method(self):
|
def method(self):
|
||||||
return 'method'
|
return 'method'
|
||||||
|
@ -44,6 +49,9 @@ class RegularFieldsModel(models.Model):
|
||||||
|
|
||||||
class TestRegularFieldMappings(TestCase):
|
class TestRegularFieldMappings(TestCase):
|
||||||
def test_regular_fields(self):
|
def test_regular_fields(self):
|
||||||
|
"""
|
||||||
|
Model fields should map to their equivelent serializer fields.
|
||||||
|
"""
|
||||||
class TestSerializer(serializers.ModelSerializer):
|
class TestSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = RegularFieldsModel
|
model = RegularFieldsModel
|
||||||
|
@ -69,8 +77,8 @@ class TestRegularFieldMappings(TestCase):
|
||||||
text_field = CharField()
|
text_field = CharField()
|
||||||
time_field = TimeField()
|
time_field = TimeField()
|
||||||
url_field = URLField(max_length=100)
|
url_field = URLField(max_length=100)
|
||||||
|
custom_field = ModelField(model_field=<tests.test_model_serializer.CustomField: custom_field>)
|
||||||
""")
|
""")
|
||||||
|
|
||||||
self.assertEqual(repr(TestSerializer()), expected)
|
self.assertEqual(repr(TestSerializer()), expected)
|
||||||
|
|
||||||
def test_method_field(self):
|
def test_method_field(self):
|
||||||
|
@ -139,6 +147,10 @@ class TestRegularFieldMappings(TestCase):
|
||||||
assert str(excinfo.exception) == expected
|
assert str(excinfo.exception) == expected
|
||||||
|
|
||||||
def test_missing_field(self):
|
def test_missing_field(self):
|
||||||
|
"""
|
||||||
|
Fields that have been declared on the serializer class must be included
|
||||||
|
in the `Meta.fields` if it exists.
|
||||||
|
"""
|
||||||
class TestSerializer(serializers.ModelSerializer):
|
class TestSerializer(serializers.ModelSerializer):
|
||||||
missing = serializers.ReadOnlyField()
|
missing = serializers.ReadOnlyField()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user