diff options
| -rw-r--r-- | rest_framework/compat.py | 6 | ||||
| -rw-r--r-- | rest_framework/tests/authentication.py | 8 | ||||
| -rw-r--r-- | rest_framework/tests/breadcrumbs.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/decorators.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/htmlrenderer.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/hyperlink_relations.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/hyperlinkedserializers.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/models.py | 5 | ||||
| -rw-r--r-- | rest_framework/tests/renderers.py | 3 | ||||
| -rw-r--r-- | rest_framework/tests/request.py | 5 | ||||
| -rw-r--r-- | rest_framework/tests/response.py | 5 | ||||
| -rw-r--r-- | rest_framework/tests/reverse.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/serializer.py | 4 | ||||
| -rw-r--r-- | rest_framework/tests/testcases.py | 6 | ||||
| -rw-r--r-- | rest_framework/urls.py | 2 | 
15 files changed, 31 insertions, 25 deletions
| diff --git a/rest_framework/compat.py b/rest_framework/compat.py index d4901437..86952fb8 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -5,6 +5,12 @@ versions of django/python, and compatibility wrappers around optional packages.  # flake8: noqa  import django +# location of patterns, url, include changes in 1.4 onwards +try: +    from django.conf.urls import patterns, url, include +except: +    from django.conf.urls.defaults import patterns, url, include +  # django-filter is optional  try:      import django_filters diff --git a/rest_framework/tests/authentication.py b/rest_framework/tests/authentication.py index d498ae3e..838e081b 100644 --- a/rest_framework/tests/authentication.py +++ b/rest_framework/tests/authentication.py @@ -1,15 +1,13 @@ -from django.conf.urls.defaults import patterns  from django.contrib.auth.models import User +from django.http import HttpResponse  from django.test import Client, TestCase -  from django.utils import simplejson as json -from django.http import HttpResponse -from rest_framework.views import APIView  from rest_framework import permissions -  from rest_framework.authtoken.models import Token  from rest_framework.authentication import TokenAuthentication +from rest_framework.compat import patterns +from rest_framework.views import APIView  import base64 diff --git a/rest_framework/tests/breadcrumbs.py b/rest_framework/tests/breadcrumbs.py index 647ab96d..df891683 100644 --- a/rest_framework/tests/breadcrumbs.py +++ b/rest_framework/tests/breadcrumbs.py @@ -1,5 +1,5 @@ -from django.conf.urls.defaults import patterns, url  from django.test import TestCase +from rest_framework.compat import patterns, url  from rest_framework.utils.breadcrumbs import get_breadcrumbs  from rest_framework.views import APIView diff --git a/rest_framework/tests/decorators.py b/rest_framework/tests/decorators.py index 41864d71..8079c8cb 100644 --- a/rest_framework/tests/decorators.py +++ b/rest_framework/tests/decorators.py @@ -1,7 +1,7 @@  from django.test import TestCase +from django.test.client import RequestFactory  from rest_framework import status  from rest_framework.response import Response -from django.test.client import RequestFactory  from rest_framework.renderers import JSONRenderer  from rest_framework.parsers import JSONParser  from rest_framework.authentication import BasicAuthentication diff --git a/rest_framework/tests/htmlrenderer.py b/rest_framework/tests/htmlrenderer.py index 4caed59e..54096206 100644 --- a/rest_framework/tests/htmlrenderer.py +++ b/rest_framework/tests/htmlrenderer.py @@ -1,9 +1,9 @@  from django.core.exceptions import PermissionDenied -from django.conf.urls.defaults import patterns, url  from django.http import Http404  from django.test import TestCase  from django.template import TemplateDoesNotExist, Template  import django.template.loader +from rest_framework.compat import patterns, url  from rest_framework.decorators import api_view, renderer_classes  from rest_framework.renderers import TemplateHTMLRenderer  from rest_framework.response import Response diff --git a/rest_framework/tests/hyperlink_relations.py b/rest_framework/tests/hyperlink_relations.py index 8f023873..9e8ecf70 100644 --- a/rest_framework/tests/hyperlink_relations.py +++ b/rest_framework/tests/hyperlink_relations.py @@ -1,7 +1,7 @@ -from django.conf.urls import patterns, url  from django.db import models  from django.test import TestCase  from rest_framework import serializers +from rest_framework.compat import patterns, url  def dummy_view(request, pk): diff --git a/rest_framework/tests/hyperlinkedserializers.py b/rest_framework/tests/hyperlinkedserializers.py index 24bf61bf..ee4d8e57 100644 --- a/rest_framework/tests/hyperlinkedserializers.py +++ b/rest_framework/tests/hyperlinkedserializers.py @@ -1,8 +1,8 @@ -from django.conf.urls.defaults import patterns, url  from django.test import TestCase  from django.test.client import RequestFactory  from django.utils import simplejson as json  from rest_framework import generics, status, serializers +from rest_framework.compat import patterns, url  from rest_framework.tests.models import Anchor, BasicModel, ManyToManyModel, BlogPost, BlogPostComment, Album, Photo, OptionalRelationModel  factory = RequestFactory() diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py index 1b1def30..0759650a 100644 --- a/rest_framework/tests/models.py +++ b/rest_framework/tests/models.py @@ -52,9 +52,10 @@ class RESTFrameworkModel(models.Model):  class HasPositiveIntegerAsChoice(RESTFrameworkModel): -    some_choices = ((1,'A'),(2,'B'),(3,'C')) +    some_choices = ((1, 'A'), (2, 'B'), (3, 'C'))      some_integer = models.PositiveIntegerField(choices=some_choices) +  class Anchor(RESTFrameworkModel):      text = models.CharField(max_length=100, default='anchor') @@ -164,7 +165,7 @@ class Photo(RESTFrameworkModel):  # Model for issue #324  class BlankFieldModel(RESTFrameworkModel): -    title = models.CharField(max_length=100, blank=True, null=True) +    title = models.CharField(max_length=100, blank=True, null=False)  # Model for issue #380 diff --git a/rest_framework/tests/renderers.py b/rest_framework/tests/renderers.py index fb843676..c1b4e624 100644 --- a/rest_framework/tests/renderers.py +++ b/rest_framework/tests/renderers.py @@ -1,13 +1,12 @@  import pickle  import re -from django.conf.urls.defaults import patterns, url, include  from django.core.cache import cache  from django.test import TestCase  from django.test.client import RequestFactory  from rest_framework import status, permissions -from rest_framework.compat import yaml +from rest_framework.compat import yaml, patterns, url, include  from rest_framework.response import Response  from rest_framework.views import APIView  from rest_framework.renderers import BaseRenderer, JSONRenderer, YAMLRenderer, \ diff --git a/rest_framework/tests/request.py b/rest_framework/tests/request.py index 2850992d..2eb34cea 100644 --- a/rest_framework/tests/request.py +++ b/rest_framework/tests/request.py @@ -1,16 +1,15 @@  """  Tests for content parsing, and form-overloaded content parsing.  """ -from django.conf.urls.defaults import patterns  from django.contrib.auth.models import User  from django.contrib.auth import authenticate, login, logout  from django.contrib.sessions.middleware import SessionMiddleware  from django.test import TestCase, Client +from django.test.client import RequestFactory  from django.utils import simplejson as json -  from rest_framework import status  from rest_framework.authentication import SessionAuthentication -from django.test.client import RequestFactory +from rest_framework.compat import patterns  from rest_framework.parsers import (      BaseParser,      FormParser, diff --git a/rest_framework/tests/response.py b/rest_framework/tests/response.py index d7b75450..875f4d42 100644 --- a/rest_framework/tests/response.py +++ b/rest_framework/tests/response.py @@ -1,8 +1,5 @@ -import unittest - -from django.conf.urls.defaults import patterns, url, include  from django.test import TestCase - +from rest_framework.compat import patterns, url, include  from rest_framework.response import Response  from rest_framework.views import APIView  from rest_framework import status diff --git a/rest_framework/tests/reverse.py b/rest_framework/tests/reverse.py index fd9a7d64..8c86e1fb 100644 --- a/rest_framework/tests/reverse.py +++ b/rest_framework/tests/reverse.py @@ -1,6 +1,6 @@ -from django.conf.urls.defaults import patterns, url  from django.test import TestCase  from django.test.client import RequestFactory +from rest_framework.compat import patterns, url  from rest_framework.reverse import reverse  factory = RequestFactory() diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index 7f2c27b0..6ea4b424 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -699,6 +699,10 @@ class BlankFieldTests(TestCase):          serializer = self.model_serializer_class(data=self.data)          self.assertEquals(serializer.is_valid(), True) +    def test_create_model_null_field(self): +        serializer = self.model_serializer_class(data={'title': None}) +        self.assertEquals(serializer.is_valid(), True) +      def test_create_not_blank_field(self):          """          Test to ensure blank data in a field not marked as blank=True diff --git a/rest_framework/tests/testcases.py b/rest_framework/tests/testcases.py index c90224aa..97f492ff 100644 --- a/rest_framework/tests/testcases.py +++ b/rest_framework/tests/testcases.py @@ -6,6 +6,7 @@ from django.test import TestCase  NO_SETTING = ('!', None) +  class TestSettingsManager(object):      """      A class which can modify some Django settings temporarily for a @@ -19,7 +20,7 @@ class TestSettingsManager(object):          self._original_settings = {}      def set(self, **kwargs): -        for k,v in kwargs.iteritems(): +        for k, v in kwargs.iteritems():              self._original_settings.setdefault(k, getattr(settings, k,                                                            NO_SETTING))              setattr(settings, k, v) @@ -31,7 +32,7 @@ class TestSettingsManager(object):          call_command('syncdb', verbosity=0)      def revert(self): -        for k,v in self._original_settings.iteritems(): +        for k, v in self._original_settings.iteritems():              if v == NO_SETTING:                  delattr(settings, k)              else: @@ -57,6 +58,7 @@ class SettingsTestCase(TestCase):      def tearDown(self):          self.settings_manager.revert() +  class TestModelsTestCase(SettingsTestCase):      def setUp(self, *args, **kwargs):          installed_apps = tuple(settings.INSTALLED_APPS) + ('rest_framework.tests',) diff --git a/rest_framework/urls.py b/rest_framework/urls.py index bcdc23e7..fbe4bc07 100644 --- a/rest_framework/urls.py +++ b/rest_framework/urls.py @@ -12,7 +12,7 @@ your authentication settings include `SessionAuthentication`.          url(r'^auth', include('rest_framework.urls', namespace='rest_framework'))      )  """ -from django.conf.urls.defaults import patterns, url +from rest_framework.compat import patterns, url  template_name = {'template_name': 'rest_framework/login.html'} | 
