aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOscar Vilaplana2013-05-19 14:55:46 +0200
committerOscar Vilaplana2013-05-19 14:55:46 +0200
commitf1f5f92d899ae37d71234bf8a8a3ad52e20a253f (patch)
treef0e1c92d34ae3612450ac8e2e670b4268b6a35a5
parent400fd6bee413be755347a66fbadfbe381ab931e0 (diff)
downloaddjango-rest-framework-f1f5f92d899ae37d71234bf8a8a3ad52e20a253f.tar.bz2
Added tests, cleaned up imports
-rw-r--r--rest_framework/tests/fields.py18
-rw-r--r--rest_framework/tests/views.py3
-rw-r--r--rest_framework/views.py14
3 files changed, 18 insertions, 17 deletions
diff --git a/rest_framework/tests/fields.py b/rest_framework/tests/fields.py
index 7a5ed718..6bc37db2 100644
--- a/rest_framework/tests/fields.py
+++ b/rest_framework/tests/fields.py
@@ -2,21 +2,23 @@
General serializer field tests.
"""
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
-from rest_framework.fields import (humanize_field, humanize_field_type,
- humanize_form_fields)
from django import forms
-from decimal import Decimal
+from django.core import validators
from django.db import models
from django.test import TestCase
-from django.core import validators
+from django.utils.datastructures import SortedDict
+
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.tests.models import RESTFrameworkModel
-from rest_framework.fields import Field
-from collections import namedtuple
-from uuid import uuid4
class TimestampedModel(models.Model):
diff --git a/rest_framework/tests/views.py b/rest_framework/tests/views.py
index 994cf6dc..b70ef4ae 100644
--- a/rest_framework/tests/views.py
+++ b/rest_framework/tests/views.py
@@ -6,6 +6,8 @@ from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.settings import api_settings
from rest_framework.views import APIView
+from rest_framework import exceptions
+from rest_framework import serializers
import copy
factory = RequestFactory()
@@ -98,3 +100,4 @@ class FunctionBasedViewIntegrationTests(TestCase):
}
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(sanitise_json_error(response.data), expected)
+
diff --git a/rest_framework/views.py b/rest_framework/views.py
index c9d55c18..1af4c0ba 100644
--- a/rest_framework/views.py
+++ b/rest_framework/views.py
@@ -2,13 +2,16 @@
Provides an APIView class that is the base of all views in REST framework.
"""
from __future__ import unicode_literals
+
from django.core.exceptions import PermissionDenied
from django.http import Http404, HttpResponse
from django.views.decorators.csrf import csrf_exempt
+
from rest_framework import status, exceptions
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.response import Response
from rest_framework.settings import api_settings
from rest_framework.utils.formatting import get_view_name, get_view_description
@@ -69,7 +72,6 @@ class APIView(View):
Helper for generating the fields metadata for allowed and permitted methods.
'''
actions = {}
-
for method in self.allowed_methods:
# skip HEAD and OPTIONS
if method in ('HEAD', 'OPTIONS'):
@@ -84,17 +86,11 @@ class APIView(View):
actions[method] = {}
continue
- # TODO: find right placement - APIView does not have get_serializer
if not hasattr(self, 'get_serializer'):
continue
serializer = self.get_serializer()
if serializer is not None:
- field_name_types = {}
- 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
+ actions[method] = humanize_form_fields(serializer)
except exceptions.PermissionDenied:
# don't add this method
pass