Skip to content

Commit b4bbbb5

Browse files
author
Daniel Alvarez
committed
Adds more tests
1 parent d61167a commit b4bbbb5

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

tests/schemas/test_openapi.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,28 @@ def test_serializer_datefield(self):
258258
assert response_schema['date']['format'] == 'date'
259259
assert response_schema['datetime']['format'] == 'date-time'
260260

261+
def test_serializer_listfield(self):
262+
patterns = [
263+
url(r'^example/?$', views.ExampleGenericViewSet.as_view({"get": "get"})),
264+
]
265+
generator = SchemaGenerator(patterns=patterns)
266+
267+
request = create_request('/')
268+
schema = generator.get_schema(request=request)
269+
270+
response = schema['paths']['/example/']['get']['responses']
271+
response_schema = response['200']['content']['application/json']['schema']['properties']
272+
273+
assert response_schema['float_list']['type'] == 'array'
274+
assert response_schema['float_list']['items']['type'] == 'number'
275+
276+
assert response_schema['string_list']['type'] == 'array'
277+
assert response_schema['string_list']['items']['type'] == 'string'
278+
279+
assert response_schema['boolean_list']['type'] == 'array'
280+
assert response_schema['boolean_list']['items']['type'] == 'boolean'
281+
assert response_schema['boolean_list']['default'] == [True, False]
282+
261283
def test_serializer_validators(self):
262284
patterns = [
263285
url(r'^example/?$', views.ExampleValidatedAPIView.as_view()),
@@ -308,13 +330,6 @@ def test_serializer_validators(self):
308330
assert response_schema['ip']['type'] == 'string'
309331
assert 'format' not in response_schema['ip']
310332

311-
assert response_schema['float_list']['type'] == 'array'
312-
assert response_schema['float_list']['items']['type'] == 'number'
313-
314-
assert response_schema['string_list']['type'] == 'array'
315-
assert response_schema['string_list']['items']['type'] == 'string'
316-
317333
assert response_schema['boolean_list']['type'] == 'array'
318334
assert response_schema['boolean_list']['items']['type'] == 'boolean'
319335
assert response_schema['boolean_list']['default'] == [True, False]
320-

tests/schemas/views.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ 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])
3639

3740

3841
class ExampleGenericAPIView(generics.GenericAPIView):
@@ -94,8 +97,6 @@ class ExampleValidatedSerializer(serializers.Serializer):
9497
ip4 = serializers.IPAddressField(protocol='ipv4')
9598
ip6 = serializers.IPAddressField(protocol='ipv6')
9699
ip = serializers.IPAddressField()
97-
float_list = serializers.ListField(child=serializers.FloatField())
98-
string_list = serializers.ListField(child=serializers.CharField())
99100
boolean_list = serializers.ListField(child=serializers.BooleanField(), default=[True, False])
100101

101102

@@ -106,7 +107,6 @@ def get(self, *args, **kwargs):
106107
serializer = self.get_serializer(
107108
integer=33, string='hello', regex='foo', decimal1=3.55, decimal2=5.33,
108109
email='[email protected]', url='http://localhost', uuid=uuid.uuid4(), ip4='127.0.0.1',
109-
ip6='::1', ip='192.168.1.1', float_list=[1.0, 2.0], string_list=['a', 'b', 'c'],
110-
boolean_list=[True]
110+
ip6='::1', ip='192.168.1.1', decimal_list=[1.0, 2.5]
111111
)
112112
return Response(serializer.data)

0 commit comments

Comments
 (0)