diff options
| author | Xavier Ordoquy | 2012-11-24 23:19:03 +0100 | 
|---|---|---|
| committer | Xavier Ordoquy | 2012-11-24 23:19:03 +0100 | 
| commit | 17000129e35b10c9d08497a669fd72f8233f065a (patch) | |
| tree | d8edb15c1b74bfa81f6483fa15055b4ba3599b7a /rest_framework/tests | |
| parent | 237e35120decb508bbad560b23ceacbcd6fccdf3 (diff) | |
| download | django-rest-framework-17000129e35b10c9d08497a669fd72f8233f065a.tar.bz2 | |
Every (base) test should now pass with python3.
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/authentication.py | 12 | ||||
| -rw-r--r-- | rest_framework/tests/files.py | 3 | ||||
| -rw-r--r-- | rest_framework/tests/generics.py | 4 | ||||
| -rw-r--r-- | rest_framework/tests/htmlrenderer.py | 10 | ||||
| -rw-r--r-- | rest_framework/tests/renderers.py | 16 | ||||
| -rw-r--r-- | rest_framework/tests/request.py | 12 | ||||
| -rw-r--r-- | rest_framework/tests/response.py | 7 | 
7 files changed, 38 insertions, 26 deletions
diff --git a/rest_framework/tests/authentication.py b/rest_framework/tests/authentication.py index 70905808..33ef0312 100644 --- a/rest_framework/tests/authentication.py +++ b/rest_framework/tests/authentication.py @@ -157,29 +157,29 @@ class TokenAuthTests(TestCase):      def test_token_login_json(self):          """Ensure token login view using JSON POST works."""          client = Client(enforce_csrf_checks=True) -        response = client.post('/auth-token/login/',  +        response = client.post('/auth-token/login/',                                 json.dumps({'username': self.username, 'password': self.password}), 'application/json')          self.assertEqual(response.status_code, 200) -        self.assertEqual(json.loads(response.content)['token'], self.key) +        self.assertEqual(json.loads(response.content.decode('ascii'))['token'], self.key)      def test_token_login_json_bad_creds(self):          """Ensure token login view using JSON POST fails if bad credentials are used."""          client = Client(enforce_csrf_checks=True) -        response = client.post('/auth-token/login/',  +        response = client.post('/auth-token/login/',                                 json.dumps({'username': self.username, 'password': "badpass"}), 'application/json')          self.assertEqual(response.status_code, 400)      def test_token_login_json_missing_fields(self):          """Ensure token login view using JSON POST fails if missing fields."""          client = Client(enforce_csrf_checks=True) -        response = client.post('/auth-token/login/',  +        response = client.post('/auth-token/login/',                                 json.dumps({'username': self.username}), 'application/json')          self.assertEqual(response.status_code, 400)      def test_token_login_form(self):          """Ensure token login view using form POST works."""          client = Client(enforce_csrf_checks=True) -        response = client.post('/auth-token/login/',  +        response = client.post('/auth-token/login/',                                 {'username': self.username, 'password': self.password})          self.assertEqual(response.status_code, 200) -        self.assertEqual(json.loads(response.content)['token'], self.key) +        self.assertEqual(json.loads(response.content.decode('ascii'))['token'], self.key) diff --git a/rest_framework/tests/files.py b/rest_framework/tests/files.py index a69695ca..42e8ed5f 100644 --- a/rest_framework/tests/files.py +++ b/rest_framework/tests/files.py @@ -1,6 +1,7 @@  from rest_framework.compat import BytesIO  import datetime +import six  from django.test import TestCase @@ -29,7 +30,7 @@ class FileSerializerTests(TestCase):      def test_create(self):          now = datetime.datetime.now() -        file = BytesIO(b'stuff') +        file = BytesIO(six.b('stuff'))          file.name = 'stuff.txt'          file.size = len(file.getvalue())          serializer = UploadedFileSerializer(data={'created': now}, files={'file': file}) diff --git a/rest_framework/tests/generics.py b/rest_framework/tests/generics.py index e4a4db80..b6d21847 100644 --- a/rest_framework/tests/generics.py +++ b/rest_framework/tests/generics.py @@ -1,5 +1,7 @@  from __future__ import unicode_literals +import six +  from django.test import TestCase  from django.test.client import RequestFactory  from django.utils import simplejson as json @@ -189,7 +191,7 @@ class TestInstanceView(TestCase):          request = factory.delete('/1')          response = self.view(request, pk=1).render()          self.assertEquals(response.status_code, status.HTTP_204_NO_CONTENT) -        self.assertEquals(response.content, '') +        self.assertEquals(response.content, six.b(''))          ids = [obj.id for obj in self.objects.all()]          self.assertEquals(ids, [2, 3]) diff --git a/rest_framework/tests/htmlrenderer.py b/rest_framework/tests/htmlrenderer.py index 4caed59e..cef3ffe9 100644 --- a/rest_framework/tests/htmlrenderer.py +++ b/rest_framework/tests/htmlrenderer.py @@ -1,3 +1,5 @@ +import six +  from django.core.exceptions import PermissionDenied  from django.conf.urls.defaults import patterns, url  from django.http import Http404 @@ -68,13 +70,13 @@ class TemplateHTMLRendererTests(TestCase):      def test_not_found_html_view(self):          response = self.client.get('/not_found')          self.assertEquals(response.status_code, 404) -        self.assertEquals(response.content, "404 Not Found") +        self.assertEquals(response.content, six.b("404 Not Found"))          self.assertEquals(response['Content-Type'], 'text/html')      def test_permission_denied_html_view(self):          response = self.client.get('/permission_denied')          self.assertEquals(response.status_code, 403) -        self.assertEquals(response.content, "403 Forbidden") +        self.assertEquals(response.content, six.b("403 Forbidden"))          self.assertEquals(response['Content-Type'], 'text/html') @@ -105,11 +107,11 @@ class TemplateHTMLRendererExceptionTests(TestCase):      def test_not_found_html_view_with_template(self):          response = self.client.get('/not_found')          self.assertEquals(response.status_code, 404) -        self.assertEquals(response.content, "404: Not found") +        self.assertEquals(response.content, six.b("404: Not found"))          self.assertEquals(response['Content-Type'], 'text/html')      def test_permission_denied_html_view_with_template(self):          response = self.client.get('/permission_denied')          self.assertEquals(response.status_code, 403) -        self.assertEquals(response.content, "403: Permission denied") +        self.assertEquals(response.content, six.b("403: Permission denied"))          self.assertEquals(response['Content-Type'], 'text/html') diff --git a/rest_framework/tests/renderers.py b/rest_framework/tests/renderers.py index a2140361..79ace78d 100644 --- a/rest_framework/tests/renderers.py +++ b/rest_framework/tests/renderers.py @@ -1,5 +1,6 @@  import pickle  import re +import six  from django.conf.urls.defaults import patterns, url, include  from django.core.cache import cache @@ -23,8 +24,8 @@ from decimal import Decimal  DUMMYSTATUS = status.HTTP_200_OK  DUMMYCONTENT = 'dummycontent' -RENDERER_A_SERIALIZER = lambda x: 'Renderer A: %s' % x -RENDERER_B_SERIALIZER = lambda x: 'Renderer B: %s' % x +RENDERER_A_SERIALIZER = lambda x: ('Renderer A: %s' % x).encode('ascii') +RENDERER_B_SERIALIZER = lambda x: ('Renderer B: %s' % x).encode('ascii')  expected_results = [ @@ -141,7 +142,7 @@ class RendererEndToEndTests(TestCase):          resp = self.client.head('/')          self.assertEquals(resp.status_code, DUMMYSTATUS)          self.assertEquals(resp['Content-Type'], RendererA.media_type) -        self.assertEquals(resp.content, '') +        self.assertEquals(resp.content, six.b(''))      def test_default_renderer_serializes_content_on_accept_any(self):          """If the Accept header is set to */* the default renderer should serialize the response.""" @@ -268,7 +269,8 @@ class JSONPRendererTests(TestCase):                                 HTTP_ACCEPT='application/javascript')          self.assertEquals(resp.status_code, 200)          self.assertEquals(resp['Content-Type'], 'application/javascript') -        self.assertEquals(resp.content, 'callback(%s);' % _flat_repr) +        self.assertEquals(resp.content, +            ('callback(%s);' % _flat_repr).encode('ascii'))      def test_without_callback_without_json_renderer(self):          """ @@ -278,7 +280,8 @@ class JSONPRendererTests(TestCase):                                 HTTP_ACCEPT='application/javascript')          self.assertEquals(resp.status_code, 200)          self.assertEquals(resp['Content-Type'], 'application/javascript') -        self.assertEquals(resp.content, 'callback(%s);' % _flat_repr) +        self.assertEquals(resp.content, +            ('callback(%s);' % _flat_repr).encode('ascii'))      def test_with_callback(self):          """ @@ -289,7 +292,8 @@ class JSONPRendererTests(TestCase):                                 HTTP_ACCEPT='application/javascript')          self.assertEquals(resp.status_code, 200)          self.assertEquals(resp['Content-Type'], 'application/javascript') -        self.assertEquals(resp.content, '%s(%s);' % (callback_func, _flat_repr)) +        self.assertEquals(resp.content, +            ('%s(%s);' % (callback_func, _flat_repr)).encode('ascii'))  if yaml: diff --git a/rest_framework/tests/request.py b/rest_framework/tests/request.py index ff48f3fa..68cfd029 100644 --- a/rest_framework/tests/request.py +++ b/rest_framework/tests/request.py @@ -1,6 +1,8 @@  """  Tests for content parsing, and form-overloaded content parsing.  """ +import six +  from django.conf.urls.defaults import patterns  from django.contrib.auth.models import User  from django.test import TestCase, Client @@ -78,14 +80,14 @@ class TestContentParsing(TestCase):          data = {'qwerty': 'uiop'}          request = Request(factory.post('/', data))          request.parsers = (FormParser(), MultiPartParser()) -        self.assertEqual(request.DATA.items(), data.items()) +        self.assertEqual(list(request.DATA.items()), list(data.items()))      def test_request_DATA_with_text_content(self):          """          Ensure request.DATA returns content for POST request with          non-form content.          """ -        content = 'qwerty' +        content = six.b('qwerty')          content_type = 'text/plain'          request = Request(factory.post('/', content, content_type=content_type))          request.parsers = (PlainTextParser(),) @@ -98,7 +100,7 @@ class TestContentParsing(TestCase):          data = {'qwerty': 'uiop'}          request = Request(factory.post('/', data))          request.parsers = (FormParser(), MultiPartParser()) -        self.assertEqual(request.POST.items(), data.items()) +        self.assertEqual(list(request.POST.items()), list(data.items()))      def test_standard_behaviour_determines_form_content_PUT(self):          """ @@ -116,14 +118,14 @@ class TestContentParsing(TestCase):              request = Request(factory.put('/', data))          request.parsers = (FormParser(), MultiPartParser()) -        self.assertEqual(request.DATA.items(), data.items()) +        self.assertEqual(list(request.DATA.items()), list(data.items()))      def test_standard_behaviour_determines_non_form_content_PUT(self):          """          Ensure request.DATA returns content for PUT request with          non-form content.          """ -        content = 'qwerty' +        content = six.b('qwerty')          content_type = 'text/plain'          request = Request(factory.put('/', content, content_type=content_type))          request.parsers = (PlainTextParser(), ) diff --git a/rest_framework/tests/response.py b/rest_framework/tests/response.py index d7b75450..237b12a9 100644 --- a/rest_framework/tests/response.py +++ b/rest_framework/tests/response.py @@ -1,4 +1,5 @@  import unittest +import six  from django.conf.urls.defaults import patterns, url, include  from django.test import TestCase @@ -25,8 +26,8 @@ class MockJsonRenderer(BaseRenderer):  DUMMYSTATUS = status.HTTP_200_OK  DUMMYCONTENT = 'dummycontent' -RENDERER_A_SERIALIZER = lambda x: 'Renderer A: %s' % x -RENDERER_B_SERIALIZER = lambda x: 'Renderer B: %s' % x +RENDERER_A_SERIALIZER = lambda x: ('Renderer A: %s' % x).encode('ascii') +RENDERER_B_SERIALIZER = lambda x: ('Renderer B: %s' % x).encode('ascii')  class RendererA(BaseRenderer): @@ -95,7 +96,7 @@ class RendererIntegrationTests(TestCase):          resp = self.client.head('/')          self.assertEquals(resp.status_code, DUMMYSTATUS)          self.assertEquals(resp['Content-Type'], RendererA.media_type) -        self.assertEquals(resp.content, '') +        self.assertEquals(resp.content, six.b(''))      def test_default_renderer_serializes_content_on_accept_any(self):          """If the Accept header is set to */* the default renderer should serialize the response."""  | 
