Commit f1f5f92d by Oscar Vilaplana

Added tests, cleaned up imports

parent 400fd6be
...@@ -2,21 +2,23 @@ ...@@ -2,21 +2,23 @@
General serializer field tests. General serializer field tests.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from django.utils.datastructures import SortedDict
from collections import namedtuple
from decimal import Decimal
from uuid import uuid4
import datetime import datetime
from rest_framework.fields import (humanize_field, humanize_field_type,
humanize_form_fields)
from django import forms from django import forms
from decimal import Decimal from django.core import validators
from django.db import models from django.db import models
from django.test import TestCase from django.test import TestCase
from django.core import validators from django.utils.datastructures import SortedDict
from rest_framework import serializers from rest_framework import serializers
from rest_framework.fields import (humanize_field, humanize_field_type, humanize_form_fields,
Field)
from rest_framework.serializers import Serializer from rest_framework.serializers import Serializer
from rest_framework.tests.models import RESTFrameworkModel from rest_framework.tests.models import RESTFrameworkModel
from rest_framework.fields import Field
from collections import namedtuple
from uuid import uuid4
class TimestampedModel(models.Model): class TimestampedModel(models.Model):
......
...@@ -6,6 +6,8 @@ from rest_framework.decorators import api_view ...@@ -6,6 +6,8 @@ from rest_framework.decorators import api_view
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
from rest_framework.views import APIView from rest_framework.views import APIView
from rest_framework import exceptions
from rest_framework import serializers
import copy import copy
factory = RequestFactory() factory = RequestFactory()
...@@ -98,3 +100,4 @@ class FunctionBasedViewIntegrationTests(TestCase): ...@@ -98,3 +100,4 @@ class FunctionBasedViewIntegrationTests(TestCase):
} }
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(sanitise_json_error(response.data), expected) self.assertEqual(sanitise_json_error(response.data), expected)
...@@ -2,13 +2,16 @@ ...@@ -2,13 +2,16 @@
Provides an APIView class that is the base of all views in REST framework. Provides an APIView class that is the base of all views in REST framework.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.http import Http404, HttpResponse from django.http import Http404, HttpResponse
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from rest_framework import status, exceptions from rest_framework import status, exceptions
from rest_framework.compat import View from rest_framework.compat import View
from rest_framework.response import Response from rest_framework.fields import humanize_form_fields
from rest_framework.request import clone_request, Request from rest_framework.request import clone_request, Request
from rest_framework.response import Response
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
from rest_framework.utils.formatting import get_view_name, get_view_description from rest_framework.utils.formatting import get_view_name, get_view_description
...@@ -69,7 +72,6 @@ class APIView(View): ...@@ -69,7 +72,6 @@ class APIView(View):
Helper for generating the fields metadata for allowed and permitted methods. Helper for generating the fields metadata for allowed and permitted methods.
''' '''
actions = {} actions = {}
for method in self.allowed_methods: for method in self.allowed_methods:
# skip HEAD and OPTIONS # skip HEAD and OPTIONS
if method in ('HEAD', 'OPTIONS'): if method in ('HEAD', 'OPTIONS'):
...@@ -84,17 +86,11 @@ class APIView(View): ...@@ -84,17 +86,11 @@ class APIView(View):
actions[method] = {} actions[method] = {}
continue continue
# TODO: find right placement - APIView does not have get_serializer
if not hasattr(self, 'get_serializer'): if not hasattr(self, 'get_serializer'):
continue continue
serializer = self.get_serializer() serializer = self.get_serializer()
if serializer is not None: if serializer is not None:
field_name_types = {} actions[method] = humanize_form_fields(serializer)
for name, field in serializer.fields.iteritems():
from rest_framework.fields import humanize_field
field_name_types[name] = humanize_field(field)
actions[method] = field_name_types
except exceptions.PermissionDenied: except exceptions.PermissionDenied:
# don't add this method # don't add this method
pass pass
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment