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
7d4ee986
Commit
7d4ee986
authored
Feb 25, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #677 from thedrow/topic/tests_refactoring
Tests general cleanup
parents
b4b9d3b5
c2c12858
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
36 additions
and
34 deletions
+36
-34
rest_framework/tests/authentication.py
+15
-14
rest_framework/tests/decorators.py
+6
-6
rest_framework/tests/generics.py
+2
-2
rest_framework/tests/htmlrenderer.py
+5
-4
rest_framework/tests/hyperlinkedserializers.py
+3
-3
rest_framework/tests/relations_slug.py
+1
-1
rest_framework/tests/renderers.py
+3
-3
rest_framework/tests/reverse.py
+1
-1
No files found.
rest_framework/tests/authentication.py
View file @
7d4ee986
...
...
@@ -4,6 +4,7 @@ from django.http import HttpResponse
from
django.test
import
Client
,
TestCase
from
rest_framework
import
HTTP_HEADER_ENCODING
from
rest_framework
import
permissions
from
rest_framework
import
status
from
rest_framework.authtoken.models
import
Token
from
rest_framework.authentication
import
TokenAuthentication
,
BasicAuthentication
,
SessionAuthentication
from
rest_framework.compat
import
patterns
...
...
@@ -46,7 +47,7 @@ class BasicAuthTests(TestCase):
base64_credentials
=
base64
.
b64encode
(
credentials
.
encode
(
HTTP_HEADER_ENCODING
))
.
decode
(
HTTP_HEADER_ENCODING
)
auth
=
'Basic
%
s'
%
base64_credentials
response
=
self
.
csrf_client
.
post
(
'/basic/'
,
{
'example'
:
'example'
},
HTTP_AUTHORIZATION
=
auth
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
def
test_post_json_passing_basic_auth
(
self
):
"""Ensure POSTing form over basic auth with correct credentials passes and does not require CSRF"""
...
...
@@ -54,17 +55,17 @@ class BasicAuthTests(TestCase):
base64_credentials
=
base64
.
b64encode
(
credentials
.
encode
(
HTTP_HEADER_ENCODING
))
.
decode
(
HTTP_HEADER_ENCODING
)
auth
=
'Basic
%
s'
%
base64_credentials
response
=
self
.
csrf_client
.
post
(
'/basic/'
,
json
.
dumps
({
'example'
:
'example'
}),
'application/json'
,
HTTP_AUTHORIZATION
=
auth
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
def
test_post_form_failing_basic_auth
(
self
):
"""Ensure POSTing form over basic auth without correct credentials fails"""
response
=
self
.
csrf_client
.
post
(
'/basic/'
,
{
'example'
:
'example'
})
self
.
assertEqual
(
response
.
status_code
,
401
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_401_UNAUTHORIZED
)
def
test_post_json_failing_basic_auth
(
self
):
"""Ensure POSTing json over basic auth without correct credentials fails"""
response
=
self
.
csrf_client
.
post
(
'/basic/'
,
json
.
dumps
({
'example'
:
'example'
}),
'application/json'
)
self
.
assertEqual
(
response
.
status_code
,
401
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_401_UNAUTHORIZED
)
self
.
assertEqual
(
response
[
'WWW-Authenticate'
],
'Basic realm="api"'
)
...
...
@@ -89,7 +90,7 @@ class SessionAuthTests(TestCase):
"""
self
.
csrf_client
.
login
(
username
=
self
.
username
,
password
=
self
.
password
)
response
=
self
.
csrf_client
.
post
(
'/session/'
,
{
'example'
:
'example'
})
self
.
assertEqual
(
response
.
status_code
,
403
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_403_FORBIDDEN
)
def
test_post_form_session_auth_passing
(
self
):
"""
...
...
@@ -97,7 +98,7 @@ class SessionAuthTests(TestCase):
"""
self
.
non_csrf_client
.
login
(
username
=
self
.
username
,
password
=
self
.
password
)
response
=
self
.
non_csrf_client
.
post
(
'/session/'
,
{
'example'
:
'example'
})
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
def
test_put_form_session_auth_passing
(
self
):
"""
...
...
@@ -105,14 +106,14 @@ class SessionAuthTests(TestCase):
"""
self
.
non_csrf_client
.
login
(
username
=
self
.
username
,
password
=
self
.
password
)
response
=
self
.
non_csrf_client
.
put
(
'/session/'
,
{
'example'
:
'example'
})
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
def
test_post_form_session_auth_failing
(
self
):
"""
Ensure POSTing form over session authentication without logged in user fails.
"""
response
=
self
.
csrf_client
.
post
(
'/session/'
,
{
'example'
:
'example'
})
self
.
assertEqual
(
response
.
status_code
,
403
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_403_FORBIDDEN
)
class
TokenAuthTests
(
TestCase
):
...
...
@@ -133,23 +134,23 @@ class TokenAuthTests(TestCase):
"""Ensure POSTing json over token auth with correct credentials passes and does not require CSRF"""
auth
=
"Token "
+
self
.
key
response
=
self
.
csrf_client
.
post
(
'/token/'
,
{
'example'
:
'example'
},
HTTP_AUTHORIZATION
=
auth
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
def
test_post_json_passing_token_auth
(
self
):
"""Ensure POSTing form over token auth with correct credentials passes and does not require CSRF"""
auth
=
"Token "
+
self
.
key
response
=
self
.
csrf_client
.
post
(
'/token/'
,
json
.
dumps
({
'example'
:
'example'
}),
'application/json'
,
HTTP_AUTHORIZATION
=
auth
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
def
test_post_form_failing_token_auth
(
self
):
"""Ensure POSTing form over token auth without correct credentials fails"""
response
=
self
.
csrf_client
.
post
(
'/token/'
,
{
'example'
:
'example'
})
self
.
assertEqual
(
response
.
status_code
,
401
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_401_UNAUTHORIZED
)
def
test_post_json_failing_token_auth
(
self
):
"""Ensure POSTing json over token auth without correct credentials fails"""
response
=
self
.
csrf_client
.
post
(
'/token/'
,
json
.
dumps
({
'example'
:
'example'
}),
'application/json'
)
self
.
assertEqual
(
response
.
status_code
,
401
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_401_UNAUTHORIZED
)
def
test_token_has_auto_assigned_key_if_none_provided
(
self
):
"""Ensure creating a token with no key will auto-assign a key"""
...
...
@@ -162,7 +163,7 @@ class TokenAuthTests(TestCase):
client
=
Client
(
enforce_csrf_checks
=
True
)
response
=
client
.
post
(
'/auth-token/'
,
json
.
dumps
({
'username'
:
self
.
username
,
'password'
:
self
.
password
}),
'application/json'
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
json
.
loads
(
response
.
content
.
decode
(
'ascii'
))[
'token'
],
self
.
key
)
def
test_token_login_json_bad_creds
(
self
):
...
...
@@ -184,5 +185,5 @@ class TokenAuthTests(TestCase):
client
=
Client
(
enforce_csrf_checks
=
True
)
response
=
client
.
post
(
'/auth-token/'
,
{
'username'
:
self
.
username
,
'password'
:
self
.
password
})
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
json
.
loads
(
response
.
content
.
decode
(
'ascii'
))[
'token'
],
self
.
key
)
rest_framework/tests/decorators.py
View file @
7d4ee986
...
...
@@ -59,11 +59,11 @@ class DecoratorTestCase(TestCase):
request
=
self
.
factory
.
get
(
'/'
)
response
=
view
(
request
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
request
=
self
.
factory
.
post
(
'/'
)
response
=
view
(
request
)
self
.
assertEqual
(
response
.
status_code
,
405
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_405_METHOD_NOT_ALLOWED
)
def
test_calling_put_method
(
self
):
...
...
@@ -73,11 +73,11 @@ class DecoratorTestCase(TestCase):
request
=
self
.
factory
.
put
(
'/'
)
response
=
view
(
request
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
request
=
self
.
factory
.
post
(
'/'
)
response
=
view
(
request
)
self
.
assertEqual
(
response
.
status_code
,
405
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_405_METHOD_NOT_ALLOWED
)
def
test_calling_patch_method
(
self
):
...
...
@@ -87,11 +87,11 @@ class DecoratorTestCase(TestCase):
request
=
self
.
factory
.
patch
(
'/'
)
response
=
view
(
request
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
request
=
self
.
factory
.
post
(
'/'
)
response
=
view
(
request
)
self
.
assertEqual
(
response
.
status_code
,
405
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_405_METHOD_NOT_ALLOWED
)
def
test_renderer_classes
(
self
):
...
...
rest_framework/tests/generics.py
View file @
7d4ee986
...
...
@@ -43,7 +43,7 @@ class SlugBasedInstanceView(InstanceView):
class
TestRootView
(
TestCase
):
def
setUp
(
self
):
"""
Create 3 BasicModel intances.
Create 3 BasicModel in
s
tances.
"""
items
=
[
'foo'
,
'bar'
,
'baz'
]
for
item
in
items
:
...
...
@@ -344,7 +344,7 @@ class ExampleView(generics.ListCreateAPIView):
class
TestM2MBrowseableAPI
(
TestCase
):
def
test_m2m_in_browseable_api
(
self
):
"""
Test for particularly ugly reression with m2m in browseable API
Test for particularly ugly re
g
ression with m2m in browseable API
"""
request
=
factory
.
get
(
'/'
,
HTTP_ACCEPT
=
'text/html'
)
view
=
ExampleView
()
.
as_view
()
...
...
rest_framework/tests/htmlrenderer.py
View file @
7d4ee986
...
...
@@ -4,6 +4,7 @@ from django.http import Http404
from
django.test
import
TestCase
from
django.template
import
TemplateDoesNotExist
,
Template
import
django.template.loader
from
rest_framework
import
status
from
rest_framework.compat
import
patterns
,
url
from
rest_framework.decorators
import
api_view
,
renderer_classes
from
rest_framework.renderers
import
TemplateHTMLRenderer
...
...
@@ -69,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
.
status_code
,
status
.
HTTP_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
.
status_code
,
status
.
HTTP_403_FORBIDDEN
)
self
.
assertEquals
(
response
.
content
,
six
.
b
(
"403 Forbidden"
))
self
.
assertEquals
(
response
[
'Content-Type'
],
'text/html'
)
...
...
@@ -106,12 +107,12 @@ 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
.
status_code
,
status
.
HTTP_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
.
status_code
,
status
.
HTTP_403_FORBIDDEN
)
self
.
assertEquals
(
response
.
content
,
six
.
b
(
"403: Permission denied"
))
self
.
assertEquals
(
response
[
'Content-Type'
],
'text/html'
)
rest_framework/tests/hyperlinkedserializers.py
View file @
7d4ee986
...
...
@@ -100,7 +100,7 @@ class TestBasicHyperlinkedView(TestCase):
def
setUp
(
self
):
"""
Create 3 BasicModel intances.
Create 3 BasicModel in
s
tances.
"""
items
=
[
'foo'
,
'bar'
,
'baz'
]
for
item
in
items
:
...
...
@@ -137,7 +137,7 @@ class TestManyToManyHyperlinkedView(TestCase):
def
setUp
(
self
):
"""
Create 3 BasicModel intances.
Create 3 BasicModel in
s
tances.
"""
items
=
[
'foo'
,
'bar'
,
'baz'
]
anchors
=
[]
...
...
@@ -235,7 +235,7 @@ class TestOptionalRelationHyperlinkedView(TestCase):
def
setUp
(
self
):
"""
Create 1 OptionalRelationModel intances.
Create 1 OptionalRelationModel in
s
tances.
"""
OptionalRelationModel
()
.
save
()
self
.
objects
=
OptionalRelationModel
.
objects
...
...
rest_framework/tests/relations_slug.py
View file @
7d4ee986
...
...
@@ -24,7 +24,7 @@ class NullableForeignKeySourceSerializer(serializers.ModelSerializer):
model
=
NullableForeignKeySource
# TODO: M2M Tests, FKTests (Non-nulable), One2One
# TODO: M2M Tests, FKTests (Non-nul
l
able), One2One
class
SlugForeignKeyTests
(
TestCase
):
def
setUp
(
self
):
target
=
ForeignKeyTarget
(
name
=
'target-1'
)
...
...
rest_framework/tests/renderers.py
View file @
7d4ee986
...
...
@@ -268,7 +268,7 @@ class JSONPRendererTests(TestCase):
"""
resp
=
self
.
client
.
get
(
'/jsonp/jsonrenderer'
,
HTTP_ACCEPT
=
'application/javascript'
)
self
.
assertEquals
(
resp
.
status_code
,
200
)
self
.
assertEquals
(
resp
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEquals
(
resp
[
'Content-Type'
],
'application/javascript'
)
self
.
assertEquals
(
resp
.
content
,
(
'callback(
%
s);'
%
_flat_repr
)
.
encode
(
'ascii'
))
...
...
@@ -279,7 +279,7 @@ class JSONPRendererTests(TestCase):
"""
resp
=
self
.
client
.
get
(
'/jsonp/nojsonrenderer'
,
HTTP_ACCEPT
=
'application/javascript'
)
self
.
assertEquals
(
resp
.
status_code
,
200
)
self
.
assertEquals
(
resp
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEquals
(
resp
[
'Content-Type'
],
'application/javascript'
)
self
.
assertEquals
(
resp
.
content
,
(
'callback(
%
s);'
%
_flat_repr
)
.
encode
(
'ascii'
))
...
...
@@ -291,7 +291,7 @@ class JSONPRendererTests(TestCase):
callback_func
=
'myjsonpcallback'
resp
=
self
.
client
.
get
(
'/jsonp/nojsonrenderer?callback='
+
callback_func
,
HTTP_ACCEPT
=
'application/javascript'
)
self
.
assertEquals
(
resp
.
status_code
,
200
)
self
.
assertEquals
(
resp
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEquals
(
resp
[
'Content-Type'
],
'application/javascript'
)
self
.
assertEquals
(
resp
.
content
,
(
'
%
s(
%
s);'
%
(
callback_func
,
_flat_repr
))
.
encode
(
'ascii'
))
...
...
rest_framework/tests/reverse.py
View file @
7d4ee986
...
...
@@ -17,7 +17,7 @@ urlpatterns = patterns('',
class
ReverseTests
(
TestCase
):
"""
Tests for fully qualifed URLs when using `reverse`.
Tests for fully qualif
i
ed URLs when using `reverse`.
"""
urls
=
'rest_framework.tests.reverse'
...
...
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