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
06c61fc5
Commit
06c61fc5
authored
Jun 22, 2015
by
Markus Korn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
compat: only add compat implementation of RequestFactory.generic() if not
provided by django
parent
d86e494e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
20 deletions
+24
-20
rest_framework/compat.py
+24
-20
No files found.
rest_framework/compat.py
View file @
06c61fc5
...
...
@@ -199,8 +199,6 @@ if 'patch' not in View.http_method_names:
View
.
http_method_names
=
View
.
http_method_names
+
[
'patch'
]
# RequestFactory only provides `generic` from 1.5 onwards
from
django.test.client
import
RequestFactory
as
DjangoRequestFactory
from
django.test.client
import
FakePayload
try
:
...
...
@@ -211,24 +209,30 @@ except ImportError:
from
django.utils.encoding
import
smart_str
as
force_bytes_or_smart_bytes
class
RequestFactory
(
DjangoRequestFactory
):
def
generic
(
self
,
method
,
path
,
data
=
''
,
content_type
=
'application/octet-stream'
,
**
extra
):
parsed
=
_urlparse
(
path
)
data
=
force_bytes_or_smart_bytes
(
data
,
settings
.
DEFAULT_CHARSET
)
r
=
{
'PATH_INFO'
:
self
.
_get_path
(
parsed
),
'QUERY_STRING'
:
force_text
(
parsed
[
4
]),
'REQUEST_METHOD'
:
six
.
text_type
(
method
),
}
if
data
:
r
.
update
({
'CONTENT_LENGTH'
:
len
(
data
),
'CONTENT_TYPE'
:
six
.
text_type
(
content_type
),
'wsgi.input'
:
FakePayload
(
data
),
})
r
.
update
(
extra
)
return
self
.
request
(
**
r
)
# RequestFactory only provides `generic` from 1.5 onwards
if
django
.
VERSION
<
(
1
,
5
):
from
django.test.client
import
RequestFactory
as
DjangoRequestFactory
class
RequestFactory
(
DjangoRequestFactory
):
def
generic
(
self
,
method
,
path
,
data
=
''
,
content_type
=
'application/octet-stream'
,
**
extra
):
parsed
=
_urlparse
(
path
)
data
=
force_bytes_or_smart_bytes
(
data
,
settings
.
DEFAULT_CHARSET
)
r
=
{
'PATH_INFO'
:
self
.
_get_path
(
parsed
),
'QUERY_STRING'
:
force_text
(
parsed
[
4
]),
'REQUEST_METHOD'
:
six
.
text_type
(
method
),
}
if
data
:
r
.
update
({
'CONTENT_LENGTH'
:
len
(
data
),
'CONTENT_TYPE'
:
six
.
text_type
(
content_type
),
'wsgi.input'
:
FakePayload
(
data
),
})
r
.
update
(
extra
)
return
self
.
request
(
**
r
)
else
:
from
django.test.client
import
RequestFactory
# Markdown is optional
...
...
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