Skip to content

Commit 528bc2d

Browse files
committed
Fixes issue with merge
1 parent 37e5aa1 commit 528bc2d

File tree

3 files changed

+8
-40
lines changed

3 files changed

+8
-40
lines changed

rest_framework/schemas/openapi.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,7 @@ def _map_field(self, field):
258258
if isinstance(field, serializers.ListField):
259259
mapping = {
260260
'type': 'array',
261-
'items': {
262-
"type": self._map_field(field.child).get('type')
263-
},
261+
'items': {},
264262
}
265263
if not isinstance(field.child, _UnvalidatedField):
266264
mapping['items'] = {

tests/schemas/test_openapi.py

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class TestFieldMapping(TestCase):
4343
def test_list_field_mapping(self):
4444
inspector = AutoSchema()
4545
cases = [
46-
(serializers.ListField(), {'type': 'array'}),
46+
(serializers.ListField(), {'items': {}, 'type': 'array'}),
4747
(serializers.ListField(child=serializers.BooleanField()), {'items': {'type': 'boolean'}, 'type': 'array'}),
4848
(serializers.ListField(child=serializers.FloatField()), {'items': {'type': 'number'}, 'type': 'array'}),
4949
(serializers.ListField(child=serializers.CharField()), {'items': {'type': 'string'}, 'type': 'array'}),
@@ -272,31 +272,9 @@ def test_serializer_datefield(self):
272272
assert response_schema['date']['format'] == 'date'
273273
assert response_schema['datetime']['format'] == 'date-time'
274274

275-
def test_serializer_listfield(self):
276-
patterns = [
277-
url(r'^example/?$', views.ExampleGenericViewSet.as_view({"get": "get"})),
278-
]
279-
generator = SchemaGenerator(patterns=patterns)
280-
281-
request = create_request('/')
282-
schema = generator.get_schema(request=request)
283-
284-
response = schema['paths']['/example/']['get']['responses']
285-
response_schema = response['200']['content']['application/json']['schema']['properties']
286-
287-
assert response_schema['float_list']['type'] == 'array'
288-
assert response_schema['float_list']['items']['type'] == 'number'
289-
290-
assert response_schema['string_list']['type'] == 'array'
291-
assert response_schema['string_list']['items']['type'] == 'string'
292-
293-
assert response_schema['boolean_list']['type'] == 'array'
294-
assert response_schema['boolean_list']['items']['type'] == 'boolean'
295-
assert response_schema['boolean_list']['default'] == [True, False]
296-
297275
def test_serializer_validators(self):
298276
patterns = [
299-
url(r'^example/?$', views.ExampleValidatedAPIView.as_view()),
277+
url(r'^example/?$', views.ExampleValdidatedAPIView.as_view()),
300278
]
301279
generator = SchemaGenerator(patterns=patterns)
302280

@@ -343,7 +321,3 @@ def test_serializer_validators(self):
343321

344322
assert response_schema['ip']['type'] == 'string'
345323
assert 'format' not in response_schema['ip']
346-
347-
assert response_schema['boolean_list']['type'] == 'array'
348-
assert response_schema['boolean_list']['items']['type'] == 'boolean'
349-
assert response_schema['boolean_list']['default'] == [True, False]

tests/schemas/views.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ def get(self, *args, **kwargs):
3333
class ExampleSerializer(serializers.Serializer):
3434
date = serializers.DateField()
3535
datetime = serializers.DateTimeField()
36-
float_list = serializers.ListField(child=serializers.FloatField())
37-
string_list = serializers.ListField(child=serializers.CharField())
38-
boolean_list = serializers.ListField(child=serializers.BooleanField(), default=[True, False])
3936

4037

4138
class ExampleGenericAPIView(generics.GenericAPIView):
@@ -100,13 +97,12 @@ class ExampleValidatedSerializer(serializers.Serializer):
10097
boolean_list = serializers.ListField(child=serializers.BooleanField(), default=[True, False])
10198

10299

103-
class ExampleValidatedAPIView(generics.GenericAPIView):
100+
class ExampleValdidatedAPIView(generics.GenericAPIView):
104101
serializer_class = ExampleValidatedSerializer
105102

106103
def get(self, *args, **kwargs):
107-
serializer = self.get_serializer(
108-
integer=33, string='hello', regex='foo', decimal1=3.55, decimal2=5.33,
109-
email='[email protected]', url='http://localhost', uuid=uuid.uuid4(), ip4='127.0.0.1',
110-
ip6='::1', ip='192.168.1.1', decimal_list=[1.0, 2.5]
111-
)
104+
serializer = self.get_serializer(integer=33, string='hello', regex='foo', decimal1=3.55,
105+
decimal2=5.33, email='[email protected]',
106+
url='http://localhost', uuid=uuid.uuid4(), ip4='127.0.0.1', ip6='::1',
107+
ip='192.168.1.1')
112108
return Response(serializer.data)

0 commit comments

Comments
 (0)