Add test case for PrimaryKeyRelatedField with UUIDs

This commit is contained in:
Ryan Thomson 2022-12-04 21:43:09 -05:00
parent 48a21aa0eb
commit 601ef120c5
No known key found for this signature in database
GPG Key ID: 6D19CE34E3282000

View File

@ -27,7 +27,7 @@ from django.test import TestCase
from rest_framework import serializers from rest_framework import serializers
from rest_framework.compat import postgres_fields from rest_framework.compat import postgres_fields
from .models import NestedForeignKeySource from .models import NestedForeignKeySource, UUIDForeignKeyTarget
def dedent(blocktext): def dedent(blocktext):
@ -736,6 +736,25 @@ class TestRelationalFieldMappings(TestCase):
self.assertEqual(repr(TestSerializer()), expected) self.assertEqual(repr(TestSerializer()), expected)
class UUIDForeignKeyModel(models.Model):
foreign_key = models.ForeignKey(UUIDForeignKeyTarget, related_name='reverse_foreign_key', on_delete=models.CASCADE)
class TestUUIDForeignKeyMapping(TestCase):
def test_uuid_pk_relation(self):
class TestSerializer(serializers.ModelSerializer):
class Meta:
model = UUIDForeignKeyModel
fields = '__all__'
expected = dedent("""
TestSerializer():
id = IntegerField(label='ID', read_only=True)
foreign_key = PrimaryKeyRelatedField(pk_field=<django.db.models.fields.UUIDField>, queryset=UUIDForeignKeyTarget.objects.all())
""")
self.assertEqual(repr(TestSerializer()), expected)
class DisplayValueTargetModel(models.Model): class DisplayValueTargetModel(models.Model):
name = models.CharField(max_length=100) name = models.CharField(max_length=100)