Fix deprecation warnings
parent
01391ca9eb
commit
bfd13668cc
|
|
@ -314,7 +314,7 @@ implemented like so:
|
||||||
))
|
))
|
||||||
class ArticleViewSet(viewsets.ModelViewSet):
|
class ArticleViewSet(viewsets.ModelViewSet):
|
||||||
filter_backends = (DjangoFilterBackend,)
|
filter_backends = (DjangoFilterBackend,)
|
||||||
filter_fields = ('title',)
|
filterset_fields = ('title',)
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -158,6 +158,7 @@ class Command(BaseCommand):
|
||||||
else:
|
else:
|
||||||
# normally this would be easily done with open(mode='x'/'w'),
|
# normally this would be easily done with open(mode='x'/'w'),
|
||||||
# but python 2 is a pain in the ass as usual
|
# but python 2 is a pain in the ass as usual
|
||||||
|
# TODO: simplify when dropping support for python 2.7
|
||||||
flags = os.O_CREAT | os.O_WRONLY
|
flags = os.O_CREAT | os.O_WRONLY
|
||||||
flags = flags | (os.O_TRUNC if overwrite else os.O_EXCL)
|
flags = flags | (os.O_TRUNC if overwrite else os.O_EXCL)
|
||||||
with os.fdopen(os.open(output_file, flags), "w") as stream:
|
with os.fdopen(os.open(output_file, flags), "w") as stream:
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,11 @@ from inflection import camelize
|
||||||
|
|
||||||
from .utils import filter_none, force_real_str
|
from .utils import filter_none, force_real_str
|
||||||
|
|
||||||
|
try:
|
||||||
|
from collections import abc as collections_abc
|
||||||
|
except ImportError:
|
||||||
|
collections_abc = collections
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
TYPE_OBJECT = "object" #:
|
TYPE_OBJECT = "object" #:
|
||||||
|
|
@ -136,7 +141,7 @@ class SwaggerDict(OrderedDict):
|
||||||
# handle __proxy__ objects from django.utils.functional.lazy
|
# handle __proxy__ objects from django.utils.functional.lazy
|
||||||
obj = obj._proxy____cast()
|
obj = obj._proxy____cast()
|
||||||
|
|
||||||
if isinstance(obj, collections.Mapping):
|
if isinstance(obj, collections_abc.Mapping):
|
||||||
result = OrderedDict()
|
result = OrderedDict()
|
||||||
memo[id(obj)] = result
|
memo[id(obj)] = result
|
||||||
items = obj.items()
|
items = obj.items()
|
||||||
|
|
@ -147,7 +152,7 @@ class SwaggerDict(OrderedDict):
|
||||||
return result
|
return result
|
||||||
elif isinstance(obj, six.string_types):
|
elif isinstance(obj, six.string_types):
|
||||||
return force_real_str(obj)
|
return force_real_str(obj)
|
||||||
elif isinstance(obj, collections.Iterable) and not isinstance(obj, collections.Iterator):
|
elif isinstance(obj, collections_abc.Iterable) and not isinstance(obj, collections_abc.Iterator):
|
||||||
return type(obj)(SwaggerDict._as_odict(elem, memo) for elem in obj)
|
return type(obj)(SwaggerDict._as_odict(elem, memo) for elem in obj)
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ def get_schema_view(info=None, url=None, patterns=None, urlconf=None, public=Fal
|
||||||
def as_cached_view(cls, cache_timeout=0, cache_kwargs=None, **initkwargs):
|
def as_cached_view(cls, cache_timeout=0, cache_kwargs=None, **initkwargs):
|
||||||
"""
|
"""
|
||||||
Calls .as_view() and wraps the result in a cache_page decorator.
|
Calls .as_view() and wraps the result in a cache_page decorator.
|
||||||
See https://docs.djangoproject.com/en/1.11/topics/cache/
|
See https://docs.djangoproject.com/en/dev/topics/cache/
|
||||||
|
|
||||||
:param int cache_timeout: same as cache_page; set to 0 for no cache
|
:param int cache_timeout: same as cache_page; set to 0 for no cache
|
||||||
:param dict cache_kwargs: dictionary of kwargs to be passed to cache_page
|
:param dict cache_kwargs: dictionary of kwargs to be passed to cache_page
|
||||||
|
|
@ -131,7 +131,7 @@ def get_schema_view(info=None, url=None, patterns=None, urlconf=None, public=Fal
|
||||||
def without_ui(cls, cache_timeout=0, cache_kwargs=None):
|
def without_ui(cls, cache_timeout=0, cache_kwargs=None):
|
||||||
"""
|
"""
|
||||||
Instantiate this view with just JSON and YAML renderers, optionally wrapped with cache_page.
|
Instantiate this view with just JSON and YAML renderers, optionally wrapped with cache_page.
|
||||||
See https://docs.djangoproject.com/en/1.11/topics/cache/.
|
See https://docs.djangoproject.com/en/dev/topics/cache/.
|
||||||
|
|
||||||
:param int cache_timeout: same as cache_page; set to 0 for no cache
|
:param int cache_timeout: same as cache_page; set to 0 for no cache
|
||||||
:param dict cache_kwargs: dictionary of kwargs to be passed to cache_page
|
:param dict cache_kwargs: dictionary of kwargs to be passed to cache_page
|
||||||
|
|
@ -143,7 +143,7 @@ def get_schema_view(info=None, url=None, patterns=None, urlconf=None, public=Fal
|
||||||
def with_ui(cls, renderer='swagger', cache_timeout=0, cache_kwargs=None):
|
def with_ui(cls, renderer='swagger', cache_timeout=0, cache_kwargs=None):
|
||||||
"""
|
"""
|
||||||
Instantiate this view with a Web UI renderer, optionally wrapped with cache_page.
|
Instantiate this view with a Web UI renderer, optionally wrapped with cache_page.
|
||||||
See https://docs.djangoproject.com/en/1.11/topics/cache/.
|
See https://docs.djangoproject.com/en/dev/topics/cache/.
|
||||||
|
|
||||||
:param str renderer: UI renderer; allowed values are ``swagger``, ``redoc``
|
:param str renderer: UI renderer; allowed values are ``swagger``, ``redoc``
|
||||||
:param int cache_timeout: same as cache_page; set to 0 for no cache
|
:param int cache_timeout: same as cache_page; set to 0 for no cache
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,10 @@ class ArticleViewSet(viewsets.ModelViewSet):
|
||||||
|
|
||||||
pagination_class = ArticlePagination
|
pagination_class = ArticlePagination
|
||||||
filter_backends = (DjangoFilterBackend, OrderingFilter)
|
filter_backends = (DjangoFilterBackend, OrderingFilter)
|
||||||
filter_fields = ('title',)
|
filterset_fields = ('title',)
|
||||||
|
# django-filter 1.1 compatibility; was renamed to filterset_fields in 2.0
|
||||||
|
# TODO: remove when dropping support for Django 1.11
|
||||||
|
filter_fields = filterset_fields
|
||||||
ordering_fields = ('date_modified', 'date_created')
|
ordering_fields = ('date_modified', 'date_created')
|
||||||
ordering = ('date_created',)
|
ordering = ('date_created',)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from django.contrib.staticfiles.templatetags.staticfiles import static
|
from django.templatetags.static import static
|
||||||
from django.utils.functional import lazy
|
from django.utils.functional import lazy
|
||||||
|
|
||||||
static_lazy = lazy(static, str)
|
static_lazy = lazy(static, str)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
|
import inspect
|
||||||
import json
|
import json
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
|
from django.utils.inspect import get_func_args
|
||||||
from rest_framework import routers, serializers, viewsets
|
from rest_framework import routers, serializers, viewsets
|
||||||
from rest_framework.decorators import api_view
|
from rest_framework.decorators import api_view
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
@ -86,6 +88,14 @@ def test_securiy_requirements(swagger_settings, mock_schema_request):
|
||||||
assert swagger['security'] == []
|
assert swagger['security'] == []
|
||||||
|
|
||||||
|
|
||||||
|
def _basename_or_base_name(basename):
|
||||||
|
# freaking DRF... TODO: remove when dropping support for DRF 3.8
|
||||||
|
if 'basename' in get_func_args(routers.BaseRouter.register):
|
||||||
|
return {'basename': basename}
|
||||||
|
else:
|
||||||
|
return {'base_name': basename}
|
||||||
|
|
||||||
|
|
||||||
def test_replaced_serializer():
|
def test_replaced_serializer():
|
||||||
class DetailSerializer(serializers.Serializer):
|
class DetailSerializer(serializers.Serializer):
|
||||||
detail = serializers.CharField()
|
detail = serializers.CharField()
|
||||||
|
|
@ -99,7 +109,7 @@ def test_replaced_serializer():
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
router.register(r'details', DetailViewSet, base_name='details')
|
router.register(r'details', DetailViewSet, **_basename_or_base_name('details'))
|
||||||
|
|
||||||
generator = OpenAPISchemaGenerator(
|
generator = OpenAPISchemaGenerator(
|
||||||
info=openapi.Info(title="Test generator", default_version="v1"),
|
info=openapi.Info(title="Test generator", default_version="v1"),
|
||||||
|
|
@ -172,7 +182,7 @@ def test_action_mapping():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
router.register(r'action', ActionViewSet, base_name='action')
|
router.register(r'action', ActionViewSet, **_basename_or_base_name('action'))
|
||||||
|
|
||||||
generator = OpenAPISchemaGenerator(
|
generator = OpenAPISchemaGenerator(
|
||||||
info=openapi.Info(title="Test generator", default_version="v1"),
|
info=openapi.Info(title="Test generator", default_version="v1"),
|
||||||
|
|
@ -208,7 +218,7 @@ def test_choice_field(choices, expected_type):
|
||||||
return Response({'detail': None})
|
return Response({'detail': None})
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
router.register(r'details', DetailViewSet, base_name='details')
|
router.register(r'details', DetailViewSet, **_basename_or_base_name('details'))
|
||||||
|
|
||||||
generator = OpenAPISchemaGenerator(
|
generator = OpenAPISchemaGenerator(
|
||||||
info=openapi.Info(title="Test generator", default_version="v1"),
|
info=openapi.Info(title="Test generator", default_version="v1"),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue