mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-25 11:04:02 +03:00
Replace type('') with six.text_type (#6482)
As all source files import unicode_literals, type('') is always equivalent to six.text_type (str on Python 3 and unicode on Python 2). Removes the need to call type(), is more explicit, and will be easier to catch places to change for when it is time to eventually drop Python 2.
This commit is contained in:
parent
dfc277cce6
commit
9d06e43d05
|
@ -1486,7 +1486,7 @@ class MultipleChoiceField(ChoiceField):
|
||||||
return dictionary.get(self.field_name, empty)
|
return dictionary.get(self.field_name, empty)
|
||||||
|
|
||||||
def to_internal_value(self, data):
|
def to_internal_value(self, data):
|
||||||
if isinstance(data, type('')) or not hasattr(data, '__iter__'):
|
if isinstance(data, six.text_type) or not hasattr(data, '__iter__'):
|
||||||
self.fail('not_a_list', input_type=type(data).__name__)
|
self.fail('not_a_list', input_type=type(data).__name__)
|
||||||
if not self.allow_empty and len(data) == 0:
|
if not self.allow_empty and len(data) == 0:
|
||||||
self.fail('empty')
|
self.fail('empty')
|
||||||
|
@ -1660,7 +1660,7 @@ class ListField(Field):
|
||||||
"""
|
"""
|
||||||
if html.is_html_input(data):
|
if html.is_html_input(data):
|
||||||
data = html.parse_html_list(data, default=[])
|
data = html.parse_html_list(data, default=[])
|
||||||
if isinstance(data, (type(''), Mapping)) or not hasattr(data, '__iter__'):
|
if isinstance(data, (six.text_type, Mapping)) or not hasattr(data, '__iter__'):
|
||||||
self.fail('not_a_list', input_type=type(data).__name__)
|
self.fail('not_a_list', input_type=type(data).__name__)
|
||||||
if not self.allow_empty and len(data) == 0:
|
if not self.allow_empty and len(data) == 0:
|
||||||
self.fail('empty')
|
self.fail('empty')
|
||||||
|
|
|
@ -518,7 +518,7 @@ class ManyRelatedField(Field):
|
||||||
return dictionary.get(self.field_name, empty)
|
return dictionary.get(self.field_name, empty)
|
||||||
|
|
||||||
def to_internal_value(self, data):
|
def to_internal_value(self, data):
|
||||||
if isinstance(data, type('')) or not hasattr(data, '__iter__'):
|
if isinstance(data, six.text_type) or not hasattr(data, '__iter__'):
|
||||||
self.fail('not_a_list', input_type=type(data).__name__)
|
self.fail('not_a_list', input_type=type(data).__name__)
|
||||||
if not self.allow_empty and len(data) == 0:
|
if not self.allow_empty and len(data) == 0:
|
||||||
self.fail('empty')
|
self.fail('empty')
|
||||||
|
|
|
@ -5,6 +5,7 @@ import pytest
|
||||||
from django.core.paginator import Paginator as DjangoPaginator
|
from django.core.paginator import Paginator as DjangoPaginator
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
from django.utils import six
|
||||||
|
|
||||||
from rest_framework import (
|
from rest_framework import (
|
||||||
exceptions, filters, generics, pagination, serializers, status
|
exceptions, filters, generics, pagination, serializers, status
|
||||||
|
@ -207,7 +208,7 @@ class TestPageNumberPagination:
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
assert self.pagination.display_page_controls
|
assert self.pagination.display_page_controls
|
||||||
assert isinstance(self.pagination.to_html(), type(''))
|
assert isinstance(self.pagination.to_html(), six.text_type)
|
||||||
|
|
||||||
def test_second_page(self):
|
def test_second_page(self):
|
||||||
request = Request(factory.get('/', {'page': 2}))
|
request = Request(factory.get('/', {'page': 2}))
|
||||||
|
@ -313,7 +314,7 @@ class TestPageNumberPaginationOverride:
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
assert not self.pagination.display_page_controls
|
assert not self.pagination.display_page_controls
|
||||||
assert isinstance(self.pagination.to_html(), type(''))
|
assert isinstance(self.pagination.to_html(), six.text_type)
|
||||||
|
|
||||||
def test_invalid_page(self):
|
def test_invalid_page(self):
|
||||||
request = Request(factory.get('/', {'page': 'invalid'}))
|
request = Request(factory.get('/', {'page': 'invalid'}))
|
||||||
|
@ -368,7 +369,7 @@ class TestLimitOffset:
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
assert self.pagination.display_page_controls
|
assert self.pagination.display_page_controls
|
||||||
assert isinstance(self.pagination.to_html(), type(''))
|
assert isinstance(self.pagination.to_html(), six.text_type)
|
||||||
|
|
||||||
def test_pagination_not_applied_if_limit_or_default_limit_not_set(self):
|
def test_pagination_not_applied_if_limit_or_default_limit_not_set(self):
|
||||||
class MockPagination(pagination.LimitOffsetPagination):
|
class MockPagination(pagination.LimitOffsetPagination):
|
||||||
|
@ -631,7 +632,7 @@ class CursorPaginationTestsMixin:
|
||||||
assert current == [1, 1, 1, 1, 1]
|
assert current == [1, 1, 1, 1, 1]
|
||||||
assert next == [1, 2, 3, 4, 4]
|
assert next == [1, 2, 3, 4, 4]
|
||||||
|
|
||||||
assert isinstance(self.pagination.to_html(), type(''))
|
assert isinstance(self.pagination.to_html(), six.text_type)
|
||||||
|
|
||||||
def test_cursor_pagination_with_page_size(self):
|
def test_cursor_pagination_with_page_size(self):
|
||||||
(previous, current, next, previous_url, next_url) = self.get_pages('/?page_size=20')
|
(previous, current, next, previous_url, next_url) = self.get_pages('/?page_size=20')
|
||||||
|
|
|
@ -5,6 +5,7 @@ import re
|
||||||
from django.core.validators import MaxValueValidator, RegexValidator
|
from django.core.validators import MaxValueValidator, RegexValidator
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
from django.utils import six
|
||||||
|
|
||||||
from rest_framework import generics, serializers, status
|
from rest_framework import generics, serializers, status
|
||||||
from rest_framework.test import APIRequestFactory
|
from rest_framework.test import APIRequestFactory
|
||||||
|
@ -111,7 +112,7 @@ class TestAvoidValidation(TestCase):
|
||||||
assert not serializer.is_valid()
|
assert not serializer.is_valid()
|
||||||
assert serializer.errors == {
|
assert serializer.errors == {
|
||||||
'non_field_errors': [
|
'non_field_errors': [
|
||||||
'Invalid data. Expected a dictionary, but got %s.' % type('').__name__
|
'Invalid data. Expected a dictionary, but got %s.' % six.text_type.__name__
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user