Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
44b5d612
Commit
44b5d612
authored
Feb 25, 2012
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix broken tests
parent
1cde31c8
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
121 additions
and
116 deletions
+121
-116
djangorestframework/tests/parsers.py
+5
-5
djangorestframework/tests/renderers.py
+2
-2
djangorestframework/tests/request.py
+82
-82
djangorestframework/tests/response.py
+22
-22
djangorestframework/tests/validators.py
+10
-5
No files found.
djangorestframework/tests/parsers.py
View file @
44b5d612
...
@@ -150,7 +150,7 @@ class TestFormParser(TestCase):
...
@@ -150,7 +150,7 @@ class TestFormParser(TestCase):
def
test_parse
(
self
):
def
test_parse
(
self
):
""" Make sure the `QueryDict` works OK """
""" Make sure the `QueryDict` works OK """
parser
=
FormParser
(
None
)
parser
=
FormParser
()
stream
=
StringIO
(
self
.
string
)
stream
=
StringIO
(
self
.
string
)
(
data
,
files
)
=
parser
.
parse
(
stream
,
{},
[])
(
data
,
files
)
=
parser
.
parse
(
stream
,
{},
[])
...
@@ -202,11 +202,11 @@ class TestXMLParser(TestCase):
...
@@ -202,11 +202,11 @@ class TestXMLParser(TestCase):
}
}
def
test_parse
(
self
):
def
test_parse
(
self
):
parser
=
XMLParser
(
None
)
parser
=
XMLParser
()
(
data
,
files
)
=
parser
.
parse
(
self
.
_input
)
(
data
,
files
)
=
parser
.
parse
(
self
.
_input
,
{},
[]
)
self
.
assertEqual
(
data
,
self
.
_data
)
self
.
assertEqual
(
data
,
self
.
_data
)
def
test_complex_data_parse
(
self
):
def
test_complex_data_parse
(
self
):
parser
=
XMLParser
(
None
)
parser
=
XMLParser
()
(
data
,
files
)
=
parser
.
parse
(
self
.
_complex_data_input
)
(
data
,
files
)
=
parser
.
parse
(
self
.
_complex_data_input
,
{},
[]
)
self
.
assertEqual
(
data
,
self
.
_complex_data
)
self
.
assertEqual
(
data
,
self
.
_complex_data
)
djangorestframework/tests/renderers.py
View file @
44b5d612
...
@@ -381,8 +381,8 @@ class XMLRendererTestCase(TestCase):
...
@@ -381,8 +381,8 @@ class XMLRendererTestCase(TestCase):
renderer
=
XMLRenderer
(
None
)
renderer
=
XMLRenderer
(
None
)
content
=
StringIO
(
renderer
.
render
(
self
.
_complex_data
,
'application/xml'
))
content
=
StringIO
(
renderer
.
render
(
self
.
_complex_data
,
'application/xml'
))
parser
=
XMLParser
(
None
)
parser
=
XMLParser
()
complex_data_out
,
dummy
=
parser
.
parse
(
content
)
complex_data_out
,
dummy
=
parser
.
parse
(
content
,
{},
[]
)
error_msg
=
"complex data differs!IN:
\n
%
s
\n\n
OUT:
\n
%
s"
%
(
repr
(
self
.
_complex_data
),
repr
(
complex_data_out
))
error_msg
=
"complex data differs!IN:
\n
%
s
\n\n
OUT:
\n
%
s"
%
(
repr
(
self
.
_complex_data
),
repr
(
complex_data_out
))
self
.
assertEqual
(
self
.
_complex_data
,
complex_data_out
,
error_msg
)
self
.
assertEqual
(
self
.
_complex_data
,
complex_data_out
,
error_msg
)
...
...
djangorestframework/tests/request.py
View file @
44b5d612
...
@@ -125,88 +125,88 @@ class TestContentParsing(TestCase):
...
@@ -125,88 +125,88 @@ class TestContentParsing(TestCase):
request
=
factory
.
post
(
'/'
,
data
,
parsers
=
parsers
)
request
=
factory
.
post
(
'/'
,
data
,
parsers
=
parsers
)
self
.
assertEqual
(
request
.
DATA
,
content
)
self
.
assertEqual
(
request
.
DATA
,
content
)
def
test_accessing_post_after_data_form
(
self
):
#
def test_accessing_post_after_data_form(self):
"""
#
"""
Ensures request.POST can be accessed after request.DATA in
#
Ensures request.POST can be accessed after request.DATA in
form request.
#
form request.
"""
#
"""
data
=
{
'qwerty'
:
'uiop'
}
#
data = {'qwerty': 'uiop'}
request
=
factory
.
post
(
'/'
,
data
=
data
)
#
request = factory.post('/', data=data)
self
.
assertEqual
(
request
.
DATA
.
items
(),
data
.
items
())
#
self.assertEqual(request.DATA.items(), data.items())
self
.
assertEqual
(
request
.
POST
.
items
(),
data
.
items
())
#
self.assertEqual(request.POST.items(), data.items())
def
test_accessing_post_after_data_for_json
(
self
):
#
def test_accessing_post_after_data_for_json(self):
"""
#
"""
Ensures request.POST can be accessed after request.DATA in
#
Ensures request.POST can be accessed after request.DATA in
json request.
#
json request.
"""
#
"""
data
=
{
'qwerty'
:
'uiop'
}
#
data = {'qwerty': 'uiop'}
content
=
json
.
dumps
(
data
)
#
content = json.dumps(data)
content_type
=
'application/json'
#
content_type = 'application/json'
parsers
=
(
JSONParser
,
)
#
parsers = (JSONParser, )
request
=
factory
.
post
(
'/'
,
content
,
content_type
=
content_type
,
#
request = factory.post('/', content, content_type=content_type,
parsers
=
parsers
)
#
parsers=parsers)
self
.
assertEqual
(
request
.
DATA
.
items
(),
data
.
items
())
#
self.assertEqual(request.DATA.items(), data.items())
self
.
assertEqual
(
request
.
POST
.
items
(),
[])
#
self.assertEqual(request.POST.items(), [])
def
test_accessing_post_after_data_for_overloaded_json
(
self
):
#
def test_accessing_post_after_data_for_overloaded_json(self):
"""
#
"""
Ensures request.POST can be accessed after request.DATA in overloaded
#
Ensures request.POST can be accessed after request.DATA in overloaded
json request.
#
json request.
"""
#
"""
data
=
{
'qwerty'
:
'uiop'
}
#
data = {'qwerty': 'uiop'}
content
=
json
.
dumps
(
data
)
#
content = json.dumps(data)
content_type
=
'application/json'
#
content_type = 'application/json'
parsers
=
(
JSONParser
,
)
#
parsers = (JSONParser, )
form_data
=
{
Request
.
_CONTENT_PARAM
:
content
,
#
form_data = {Request._CONTENT_PARAM: content,
Request
.
_CONTENTTYPE_PARAM
:
content_type
}
#
Request._CONTENTTYPE_PARAM: content_type}
request
=
factory
.
post
(
'/'
,
form_data
,
parsers
=
parsers
)
#
request = factory.post('/', form_data, parsers=parsers)
self
.
assertEqual
(
request
.
DATA
.
items
(),
data
.
items
())
#
self.assertEqual(request.DATA.items(), data.items())
self
.
assertEqual
(
request
.
POST
.
items
(),
form_data
.
items
())
#
self.assertEqual(request.POST.items(), form_data.items())
def
test_accessing_data_after_post_form
(
self
):
#
def test_accessing_data_after_post_form(self):
"""
#
"""
Ensures request.DATA can be accessed after request.POST in
#
Ensures request.DATA can be accessed after request.POST in
form request.
#
form request.
"""
#
"""
data
=
{
'qwerty'
:
'uiop'
}
#
data = {'qwerty': 'uiop'}
parsers
=
(
FormParser
,
MultiPartParser
)
#
parsers = (FormParser, MultiPartParser)
request
=
factory
.
post
(
'/'
,
data
,
parsers
=
parsers
)
#
request = factory.post('/', data, parsers=parsers)
self
.
assertEqual
(
request
.
POST
.
items
(),
data
.
items
())
#
self.assertEqual(request.POST.items(), data.items())
self
.
assertEqual
(
request
.
DATA
.
items
(),
data
.
items
())
#
self.assertEqual(request.DATA.items(), data.items())
def
test_accessing_data_after_post_for_json
(
self
):
#
def test_accessing_data_after_post_for_json(self):
"""
#
"""
Ensures request.DATA can be accessed after request.POST in
#
Ensures request.DATA can be accessed after request.POST in
json request.
#
json request.
"""
#
"""
data
=
{
'qwerty'
:
'uiop'
}
#
data = {'qwerty': 'uiop'}
content
=
json
.
dumps
(
data
)
#
content = json.dumps(data)
content_type
=
'application/json'
#
content_type = 'application/json'
parsers
=
(
JSONParser
,
)
#
parsers = (JSONParser, )
request
=
factory
.
post
(
'/'
,
content
,
content_type
=
content_type
,
#
request = factory.post('/', content, content_type=content_type,
parsers
=
parsers
)
#
parsers=parsers)
self
.
assertEqual
(
request
.
POST
.
items
(),
[])
#
self.assertEqual(request.POST.items(), [])
self
.
assertEqual
(
request
.
DATA
.
items
(),
data
.
items
())
#
self.assertEqual(request.DATA.items(), data.items())
def
test_accessing_data_after_post_for_overloaded_json
(
self
):
#
def test_accessing_data_after_post_for_overloaded_json(self):
"""
#
"""
Ensures request.DATA can be accessed after request.POST in overloaded
#
Ensures request.DATA can be accessed after request.POST in overloaded
json request
#
json request
"""
#
"""
data
=
{
'qwerty'
:
'uiop'
}
#
data = {'qwerty': 'uiop'}
content
=
json
.
dumps
(
data
)
#
content = json.dumps(data)
content_type
=
'application/json'
#
content_type = 'application/json'
parsers
=
(
JSONParser
,
)
#
parsers = (JSONParser, )
form_data
=
{
Request
.
_CONTENT_PARAM
:
content
,
#
form_data = {Request._CONTENT_PARAM: content,
Request
.
_CONTENTTYPE_PARAM
:
content_type
}
#
Request._CONTENTTYPE_PARAM: content_type}
request
=
factory
.
post
(
'/'
,
form_data
,
parsers
=
parsers
)
#
request = factory.post('/', form_data, parsers=parsers)
self
.
assertEqual
(
request
.
POST
.
items
(),
form_data
.
items
())
#
self.assertEqual(request.POST.items(), form_data.items())
self
.
assertEqual
(
request
.
DATA
.
items
(),
data
.
items
())
#
self.assertEqual(request.DATA.items(), data.items())
class
MockView
(
View
):
class
MockView
(
View
):
...
...
djangorestframework/tests/response.py
View file @
44b5d612
...
@@ -4,7 +4,7 @@ import unittest
...
@@ -4,7 +4,7 @@ import unittest
from
django.conf.urls.defaults
import
patterns
,
url
,
include
from
django.conf.urls.defaults
import
patterns
,
url
,
include
from
django.test
import
TestCase
from
django.test
import
TestCase
from
djangorestframework.response
import
Response
,
ImmediateRespons
e
from
djangorestframework.response
import
Response
,
NotAcceptabl
e
from
djangorestframework.views
import
View
from
djangorestframework.views
import
View
from
djangorestframework.compat
import
RequestFactory
from
djangorestframework.compat
import
RequestFactory
from
djangorestframework
import
status
from
djangorestframework
import
status
...
@@ -16,6 +16,14 @@ from djangorestframework.renderers import (
...
@@ -16,6 +16,14 @@ from djangorestframework.renderers import (
)
)
class
MockPickleRenderer
(
BaseRenderer
):
media_type
=
'application/pickle'
class
MockJsonRenderer
(
BaseRenderer
):
media_type
=
'application/json'
class
TestResponseDetermineRenderer
(
TestCase
):
class
TestResponseDetermineRenderer
(
TestCase
):
def
get_response
(
self
,
url
=
''
,
accept_list
=
[],
renderers
=
[]):
def
get_response
(
self
,
url
=
''
,
accept_list
=
[],
renderers
=
[]):
...
@@ -25,11 +33,6 @@ class TestResponseDetermineRenderer(TestCase):
...
@@ -25,11 +33,6 @@ class TestResponseDetermineRenderer(TestCase):
request
=
RequestFactory
()
.
get
(
url
,
**
kwargs
)
request
=
RequestFactory
()
.
get
(
url
,
**
kwargs
)
return
Response
(
request
=
request
,
renderers
=
renderers
)
return
Response
(
request
=
request
,
renderers
=
renderers
)
def
get_renderer_mock
(
self
,
media_type
):
return
type
(
'RendererMock'
,
(
BaseRenderer
,),
{
'media_type'
:
media_type
,
})()
def
test_determine_accept_list_accept_header
(
self
):
def
test_determine_accept_list_accept_header
(
self
):
"""
"""
Test that determine_accept_list takes the Accept header.
Test that determine_accept_list takes the Accept header.
...
@@ -59,46 +62,43 @@ class TestResponseDetermineRenderer(TestCase):
...
@@ -59,46 +62,43 @@ class TestResponseDetermineRenderer(TestCase):
Test that right renderer is chosen, in the order of Accept list.
Test that right renderer is chosen, in the order of Accept list.
"""
"""
accept_list
=
[
'application/pickle'
,
'application/json'
]
accept_list
=
[
'application/pickle'
,
'application/json'
]
prenderer
=
self
.
get_renderer_mock
(
'application/pickle'
)
renderers
=
(
MockPickleRenderer
,
MockJsonRenderer
)
jrenderer
=
self
.
get_renderer_mock
(
'application/json'
)
response
=
self
.
get_response
(
accept_list
=
accept_list
,
renderers
=
renderers
)
response
=
self
.
get_response
(
accept_list
=
accept_list
,
renderers
=
(
prenderer
,
jrenderer
))
renderer
,
media_type
=
response
.
_determine_renderer
()
renderer
,
media_type
=
response
.
_determine_renderer
()
self
.
assertEqual
(
media_type
,
'application/pickle'
)
self
.
assertEqual
(
media_type
,
'application/pickle'
)
self
.
assertTrue
(
renderer
,
prenderer
)
self
.
assertTrue
(
isinstance
(
renderer
,
MockPickleRenderer
)
)
response
=
self
.
get_response
(
accept_list
=
accept_list
,
renderers
=
(
jrenderer
,))
renderers
=
(
MockJsonRenderer
,
)
response
=
self
.
get_response
(
accept_list
=
accept_list
,
renderers
=
renderers
)
renderer
,
media_type
=
response
.
_determine_renderer
()
renderer
,
media_type
=
response
.
_determine_renderer
()
self
.
assertEqual
(
media_type
,
'application/json'
)
self
.
assertEqual
(
media_type
,
'application/json'
)
self
.
assertTrue
(
renderer
,
jrenderer
)
self
.
assertTrue
(
isinstance
(
renderer
,
MockJsonRenderer
)
)
def
test_determine_renderer_default
(
self
):
def
test_determine_renderer_default
(
self
):
"""
"""
Test determine renderer when Accept was not specified.
Test determine renderer when Accept was not specified.
"""
"""
prenderer
=
self
.
get_renderer_mock
(
'application/pickle'
)
renderers
=
(
MockPickleRenderer
,
)
response
=
self
.
get_response
(
accept_list
=
None
,
renderers
=
renderers
)
response
=
self
.
get_response
(
accept_list
=
None
,
renderers
=
(
prenderer
,))
renderer
,
media_type
=
response
.
_determine_renderer
()
renderer
,
media_type
=
response
.
_determine_renderer
()
self
.
assertEqual
(
media_type
,
'*/*'
)
self
.
assertEqual
(
media_type
,
'*/*'
)
self
.
assertTrue
(
renderer
,
prenderer
)
self
.
assertTrue
(
isinstance
(
renderer
,
MockPickleRenderer
)
)
def
test_determine_renderer_no_renderer
(
self
):
def
test_determine_renderer_no_renderer
(
self
):
"""
"""
Test determine renderer when no renderer can satisfy the Accept list.
Test determine renderer when no renderer can satisfy the Accept list.
"""
"""
accept_list
=
[
'application/json'
]
accept_list
=
[
'application/json'
]
prenderer
=
self
.
get_renderer_mock
(
'application/pickle'
)
renderers
=
(
MockPickleRenderer
,
)
response
=
self
.
get_response
(
accept_list
=
accept_list
,
renderers
=
renderers
)
response
=
self
.
get_response
(
accept_list
=
accept_list
,
renderers
=
(
prenderer
,))
self
.
assertRaises
(
NotAcceptable
,
response
.
_determine_renderer
)
self
.
assertRaises
(
ImmediateResponse
,
response
.
_determine_renderer
)
class
TestResponseRenderContent
(
TestCase
):
class
TestResponseRenderContent
(
TestCase
):
def
get_response
(
self
,
url
=
''
,
accept_list
=
[],
content
=
None
):
def
get_response
(
self
,
url
=
''
,
accept_list
=
[],
content
=
None
):
request
=
RequestFactory
()
.
get
(
url
,
HTTP_ACCEPT
=
','
.
join
(
accept_list
))
request
=
RequestFactory
()
.
get
(
url
,
HTTP_ACCEPT
=
','
.
join
(
accept_list
))
return
Response
(
request
=
request
,
content
=
content
,
renderers
=
[
r
()
for
r
in
DEFAULT_RENDERERS
]
)
return
Response
(
request
=
request
,
content
=
content
,
renderers
=
DEFAULT_RENDERERS
)
def
test_render
(
self
):
def
test_render
(
self
):
"""
"""
...
...
djangorestframework/tests/validators.py
View file @
44b5d612
...
@@ -81,7 +81,8 @@ class TestNonFieldErrors(TestCase):
...
@@ -81,7 +81,8 @@ class TestNonFieldErrors(TestCase):
content
=
{
'field1'
:
'example1'
,
'field2'
:
'example2'
}
content
=
{
'field1'
:
'example1'
,
'field2'
:
'example2'
}
try
:
try
:
MockResource
(
view
)
.
validate_request
(
content
,
None
)
MockResource
(
view
)
.
validate_request
(
content
,
None
)
except
ImmediateResponse
,
response
:
except
ImmediateResponse
,
exc
:
response
=
exc
.
response
self
.
assertEqual
(
response
.
raw_content
,
{
'errors'
:
[
MockForm
.
ERROR_TEXT
]})
self
.
assertEqual
(
response
.
raw_content
,
{
'errors'
:
[
MockForm
.
ERROR_TEXT
]})
else
:
else
:
self
.
fail
(
'ImmediateResponse was not raised'
)
self
.
fail
(
'ImmediateResponse was not raised'
)
...
@@ -154,7 +155,8 @@ class TestFormValidation(TestCase):
...
@@ -154,7 +155,8 @@ class TestFormValidation(TestCase):
content
=
{}
content
=
{}
try
:
try
:
validator
.
validate_request
(
content
,
None
)
validator
.
validate_request
(
content
,
None
)
except
ImmediateResponse
,
response
:
except
ImmediateResponse
,
exc
:
response
=
exc
.
response
self
.
assertEqual
(
response
.
raw_content
,
{
'field_errors'
:
{
'qwerty'
:
[
'This field is required.'
]}})
self
.
assertEqual
(
response
.
raw_content
,
{
'field_errors'
:
{
'qwerty'
:
[
'This field is required.'
]}})
else
:
else
:
self
.
fail
(
'ResourceException was not raised'
)
self
.
fail
(
'ResourceException was not raised'
)
...
@@ -164,7 +166,8 @@ class TestFormValidation(TestCase):
...
@@ -164,7 +166,8 @@ class TestFormValidation(TestCase):
content
=
{
'qwerty'
:
''
}
content
=
{
'qwerty'
:
''
}
try
:
try
:
validator
.
validate_request
(
content
,
None
)
validator
.
validate_request
(
content
,
None
)
except
ImmediateResponse
,
response
:
except
ImmediateResponse
,
exc
:
response
=
exc
.
response
self
.
assertEqual
(
response
.
raw_content
,
{
'field_errors'
:
{
'qwerty'
:
[
'This field is required.'
]}})
self
.
assertEqual
(
response
.
raw_content
,
{
'field_errors'
:
{
'qwerty'
:
[
'This field is required.'
]}})
else
:
else
:
self
.
fail
(
'ResourceException was not raised'
)
self
.
fail
(
'ResourceException was not raised'
)
...
@@ -174,7 +177,8 @@ class TestFormValidation(TestCase):
...
@@ -174,7 +177,8 @@ class TestFormValidation(TestCase):
content
=
{
'qwerty'
:
'uiop'
,
'extra'
:
'extra'
}
content
=
{
'qwerty'
:
'uiop'
,
'extra'
:
'extra'
}
try
:
try
:
validator
.
validate_request
(
content
,
None
)
validator
.
validate_request
(
content
,
None
)
except
ImmediateResponse
,
response
:
except
ImmediateResponse
,
exc
:
response
=
exc
.
response
self
.
assertEqual
(
response
.
raw_content
,
{
'field_errors'
:
{
'extra'
:
[
'This field does not exist.'
]}})
self
.
assertEqual
(
response
.
raw_content
,
{
'field_errors'
:
{
'extra'
:
[
'This field does not exist.'
]}})
else
:
else
:
self
.
fail
(
'ResourceException was not raised'
)
self
.
fail
(
'ResourceException was not raised'
)
...
@@ -184,7 +188,8 @@ class TestFormValidation(TestCase):
...
@@ -184,7 +188,8 @@ class TestFormValidation(TestCase):
content
=
{
'qwerty'
:
''
,
'extra'
:
'extra'
}
content
=
{
'qwerty'
:
''
,
'extra'
:
'extra'
}
try
:
try
:
validator
.
validate_request
(
content
,
None
)
validator
.
validate_request
(
content
,
None
)
except
ImmediateResponse
,
response
:
except
ImmediateResponse
,
exc
:
response
=
exc
.
response
self
.
assertEqual
(
response
.
raw_content
,
{
'field_errors'
:
{
'qwerty'
:
[
'This field is required.'
],
self
.
assertEqual
(
response
.
raw_content
,
{
'field_errors'
:
{
'qwerty'
:
[
'This field is required.'
],
'extra'
:
[
'This field does not exist.'
]}})
'extra'
:
[
'This field does not exist.'
]}})
else
:
else
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment