Add test case for source with attributes in extra_kwargs

This commit is contained in:
Lucas Berg 2023-08-23 14:39:28 +02:00
parent dd0bb97082
commit 705e277896

View File

@ -735,6 +735,27 @@ class TestRelationalFieldMappings(TestCase):
""")
self.assertEqual(repr(TestSerializer()), expected)
def test_source_with_attributes(self):
class TestSerializer(serializers.ModelSerializer):
class Meta:
model = RelationalModel
fields = ('foreign_key_name', 'one_to_one_name')
extra_kwargs = {
'foreign_key_name': {
'source': 'foreign_key.name',
},
'one_to_one_name': {
'source': 'one_to_one.name',
}
}
expected = dedent("""
TestSerializer():
foreign_key_name = CharField(max_length=100, source='foreign_key.name')
one_to_one_name = CharField(max_length=100, source='one_to_one.name')
""")
self.assertEqual(repr(TestSerializer()), expected)
class DisplayValueTargetModel(models.Model):
name = models.CharField(max_length=100)