diff options
author | Claude Paroz <claude@2xlibre.net> | 2017-09-18 10:06:01 +0200 |
---|---|---|
committer | Claude Paroz <claude@2xlibre.net> | 2017-09-18 18:22:13 +0200 |
commit | 774f5548bdf976fc6f0f5ec3603723850a698f74 (patch) | |
tree | 2fe539c5832ebeebd18f22c18655527df1007879 /tests/serializers | |
parent | d549b8805053d4b064bf492ba90e90db5d7e2a6b (diff) | |
download | django-774f5548bdf976fc6f0f5ec3603723850a698f74.tar.gz |
Fixed #28610 -- Skipped test when serializer is not available
Thanks Tim Graham for the review.
Diffstat (limited to 'tests/serializers')
-rw-r--r-- | tests/serializers/tests.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/tests/serializers/tests.py b/tests/serializers/tests.py index 0ad95f7397..0ea60f0f64 100644 --- a/tests/serializers/tests.py +++ b/tests/serializers/tests.py @@ -1,7 +1,7 @@ from datetime import datetime from functools import partialmethod from io import StringIO -from unittest import mock +from unittest import mock, skipIf from django.core import serializers from django.core.serializers import SerializerDoesNotExist @@ -393,16 +393,16 @@ class SerializersTransactionTestBase: self.assertEqual(art_obj.author.name, "Agnes") -def register_tests(test_class, method_name, test_func, exclude=None): +def register_tests(test_class, method_name, test_func, exclude=()): """ Dynamically create serializer tests to ensure that all registered serializers are automatically tested. """ - formats = [ - f for f in serializers.get_serializer_formats() - if (not isinstance(serializers.get_serializer(f), serializers.BadSerializer) and - f != 'geojson' and - (exclude is None or f not in exclude)) - ] - for format_ in formats: - setattr(test_class, method_name % format_, partialmethod(test_func, format_)) + for format_ in serializers.get_serializer_formats(): + if format_ == 'geojson' or format_ in exclude: + continue + decorated_func = skipIf( + isinstance(serializers.get_serializer(format_), serializers.BadSerializer), + 'The Python library for the %s serializer is not installed.' % format_, + )(test_func) + setattr(test_class, method_name % format_, partialmethod(decorated_func, format_)) |