|
19 | 19 | from rest_framework.request import Request
|
20 | 20 | from rest_framework.schemas.openapi import AutoSchema, SchemaGenerator
|
21 | 21 |
|
| 22 | +from ..models import BasicModel |
22 | 23 | from . import views
|
23 | 24 |
|
24 | 25 |
|
@@ -144,6 +145,22 @@ class Meta:
|
144 | 145 | assert data['properties']['ro_field']['nullable'], "ro_field nullable must be true"
|
145 | 146 | assert data['properties']['ro_field']['readOnly'], "ro_field read_only must be true"
|
146 | 147 |
|
| 148 | + def test_primary_key_related_field(self): |
| 149 | + class PrimaryKeyRelatedFieldSerializer(serializers.Serializer): |
| 150 | + basic = serializers.PrimaryKeyRelatedField(queryset=BasicModel.objects.all()) |
| 151 | + uuid = serializers.PrimaryKeyRelatedField(queryset=BasicModel.objects.all(), |
| 152 | + pk_field=serializers.UUIDField()) |
| 153 | + char = serializers.PrimaryKeyRelatedField(queryset=BasicModel.objects.all(), |
| 154 | + pk_field=serializers.CharField()) |
| 155 | + |
| 156 | + serializer = PrimaryKeyRelatedFieldSerializer() |
| 157 | + inspector = AutoSchema() |
| 158 | + |
| 159 | + data = inspector.map_serializer(serializer=serializer) |
| 160 | + assert data['properties']['basic']['type'] == "integer" |
| 161 | + assert data['properties']['uuid']['format'] == "uuid" |
| 162 | + assert data['properties']['char']['type'] == "string" |
| 163 | + |
147 | 164 |
|
148 | 165 | @pytest.mark.skipif(uritemplate is None, reason='uritemplate not installed.')
|
149 | 166 | class TestOperationIntrospection(TestCase):
|
|
0 commit comments