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
6c083b12
Commit
6c083b12
authored
Jan 24, 2015
by
Brandon Cazander
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Streamline test for #2455
parent
ed047258
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
16 additions
and
67 deletions
+16
-67
tests/browsable_api/auth_urls.py
+1
-7
tests/browsable_api/models.py
+0
-9
tests/browsable_api/serializers.py
+0
-14
tests/browsable_api/test_browsable_api.py
+0
-10
tests/browsable_api/views.py
+0
-27
tests/test_metadata.py
+15
-0
No files found.
tests/browsable_api/auth_urls.py
View file @
6c083b12
from
__future__
import
unicode_literals
from
django.conf.urls
import
patterns
,
url
,
include
from
rest_framework
import
routers
from
.views
import
MockView
,
FooViewSet
,
BarViewSet
from
.views
import
MockView
router
=
routers
.
SimpleRouter
()
router
.
register
(
r'foo'
,
FooViewSet
)
router
.
register
(
r'bar'
,
BarViewSet
)
urlpatterns
=
patterns
(
''
,
(
r'^$'
,
MockView
.
as_view
()),
url
(
r'^'
,
include
(
router
.
urls
)),
url
(
r'^bar/(?P<pk>\d+)/$'
,
BarViewSet
,
name
=
'bar-list'
),
url
(
r'^auth/'
,
include
(
'rest_framework.urls'
,
namespace
=
'rest_framework'
)),
)
tests/browsable_api/models.py
deleted
100644 → 0
View file @
ed047258
from
django.db
import
models
class
Foo
(
models
.
Model
):
name
=
models
.
CharField
(
max_length
=
30
)
class
Bar
(
models
.
Model
):
foo
=
models
.
ForeignKey
(
"Foo"
,
editable
=
False
)
tests/browsable_api/serializers.py
deleted
100644 → 0
View file @
ed047258
from
.models
import
Foo
,
Bar
from
rest_framework.serializers
import
HyperlinkedModelSerializer
,
HyperlinkedIdentityField
class
FooSerializer
(
HyperlinkedModelSerializer
):
bar
=
HyperlinkedIdentityField
(
view_name
=
'bar-list'
)
class
Meta
:
model
=
Foo
class
BarSerializer
(
HyperlinkedModelSerializer
):
class
Meta
:
model
=
Bar
tests/browsable_api/test_browsable_api.py
View file @
6c083b12
...
...
@@ -3,7 +3,6 @@ from django.contrib.auth.models import User
from
django.test
import
TestCase
from
rest_framework.test
import
APIClient
from
.models
import
Foo
,
Bar
class
DropdownWithAuthTests
(
TestCase
):
...
...
@@ -17,8 +16,6 @@ class DropdownWithAuthTests(TestCase):
self
.
email
=
'lennon@thebeatles.com'
self
.
password
=
'password'
self
.
user
=
User
.
objects
.
create_user
(
self
.
username
,
self
.
email
,
self
.
password
)
foo
=
Foo
.
objects
.
create
(
name
=
'Foo'
)
Bar
.
objects
.
create
(
foo
=
foo
)
def
tearDown
(
self
):
self
.
client
.
logout
()
...
...
@@ -28,13 +25,6 @@ class DropdownWithAuthTests(TestCase):
response
=
self
.
client
.
get
(
'/'
)
self
.
assertContains
(
response
,
'john'
)
def
test_bug_2455_clone_request
(
self
):
self
.
client
.
login
(
username
=
self
.
username
,
password
=
self
.
password
)
json_response
=
self
.
client
.
get
(
'/foo/1/?format=json'
)
self
.
assertEqual
(
json_response
.
status_code
,
200
)
browsable_api_response
=
self
.
client
.
get
(
'/foo/1/'
)
self
.
assertEqual
(
browsable_api_response
.
status_code
,
200
)
def
test_logout_shown_when_logged_in
(
self
):
self
.
client
.
login
(
username
=
self
.
username
,
password
=
self
.
password
)
response
=
self
.
client
.
get
(
'/'
)
...
...
tests/browsable_api/views.py
View file @
6c083b12
from
__future__
import
unicode_literals
from
rest_framework.views
import
APIView
from
rest_framework.viewsets
import
ModelViewSet
from
rest_framework
import
authentication
from
rest_framework
import
renderers
from
rest_framework.response
import
Response
from
rest_framework.renderers
import
BrowsableAPIRenderer
,
JSONRenderer
from
rest_framework.versioning
import
NamespaceVersioning
from
.models
import
Foo
,
Bar
from
.serializers
import
FooSerializer
,
BarSerializer
class
MockView
(
APIView
):
...
...
@@ -18,25 +13,3 @@ class MockView(APIView):
def
get
(
self
,
request
):
return
Response
({
'a'
:
1
,
'b'
:
2
,
'c'
:
3
})
class
SerializerClassMixin
(
object
):
def
get_serializer_class
(
self
):
# Get base name of serializer
self
.
request
.
version
return
self
.
serializer_class
class
FooViewSet
(
SerializerClassMixin
,
ModelViewSet
):
versioning_class
=
NamespaceVersioning
model
=
Foo
queryset
=
Foo
.
objects
.
all
()
serializer_class
=
FooSerializer
renderer_classes
=
(
BrowsableAPIRenderer
,
JSONRenderer
)
class
BarViewSet
(
SerializerClassMixin
,
ModelViewSet
):
model
=
Bar
queryset
=
Bar
.
objects
.
all
()
serializer_class
=
BarSerializer
renderer_classes
=
(
BrowsableAPIRenderer
,
)
tests/test_metadata.py
View file @
6c083b12
from
__future__
import
unicode_literals
from
rest_framework
import
exceptions
,
serializers
,
status
,
views
from
rest_framework.request
import
Request
from
rest_framework.renderers
import
BrowsableAPIRenderer
from
rest_framework.test
import
APIRequestFactory
request
=
Request
(
APIRequestFactory
()
.
options
(
'/'
))
...
...
@@ -168,3 +169,17 @@ class TestMetadata:
response
=
view
(
request
=
request
)
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
list
(
response
.
data
[
'actions'
]
.
keys
())
==
[
'POST'
]
def
test_bug_2455_clone_request
(
self
):
class
ExampleView
(
views
.
APIView
):
renderer_classes
=
(
BrowsableAPIRenderer
,)
def
post
(
self
,
request
):
pass
def
get_serializer
(
self
):
assert
hasattr
(
self
.
request
,
'version'
)
return
serializers
.
Serializer
()
view
=
ExampleView
.
as_view
()
view
(
request
=
request
)
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