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
21776c0d
Commit
21776c0d
authored
Jan 13, 2012
by
Michele Lazzeri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
split renderer and parser complex data test case
parent
1bec6f2d
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
62 additions
and
111 deletions
+62
-111
djangorestframework/tests/parsers.py
+34
-5
djangorestframework/tests/renderers.py
+28
-106
No files found.
djangorestframework/tests/parsers.py
View file @
21776c0d
...
@@ -156,10 +156,9 @@ class TestFormParser(TestCase):
...
@@ -156,10 +156,9 @@ class TestFormParser(TestCase):
self
.
assertEqual
(
Form
(
data
)
.
is_valid
(),
True
)
self
.
assertEqual
(
Form
(
data
)
.
is_valid
(),
True
)
class
TestXMLParser
(
TestCase
):
class
TestXMLParser
(
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
self
.
input
=
StringIO
(
self
.
_
input
=
StringIO
(
'<?xml version="1.0" encoding="utf-8"?>'
'<?xml version="1.0" encoding="utf-8"?>'
'<root>'
'<root>'
'<field_a>121.0</field_a>'
'<field_a>121.0</field_a>'
...
@@ -168,15 +167,45 @@ class TestXMLParser(TestCase):
...
@@ -168,15 +167,45 @@ class TestXMLParser(TestCase):
'<field_d>2011-12-25 12:45:00</field_d>'
'<field_d>2011-12-25 12:45:00</field_d>'
'</root>'
'</root>'
)
)
self
.
data
=
{
self
.
_
data
=
{
'field_a'
:
121
,
'field_a'
:
121
,
'field_b'
:
'dasd'
,
'field_b'
:
'dasd'
,
'field_c'
:
None
,
'field_c'
:
None
,
'field_d'
:
datetime
.
datetime
(
2011
,
12
,
25
,
12
,
45
,
00
)
'field_d'
:
datetime
.
datetime
(
2011
,
12
,
25
,
12
,
45
,
00
)
}
}
self
.
_complex_data_input
=
StringIO
(
'<?xml version="1.0" encoding="utf-8"?>'
'<root>'
'<creation_date>2011-12-25 12:45:00</creation_date>'
'<sub_data_list>'
'<list-item><sub_id>1</sub_id><sub_name>first</sub_name></list-item>'
'<list-item><sub_id>2</sub_id><sub_name>second</sub_name></list-item>'
'</sub_data_list>'
'<name>name</name>'
'</root>'
)
self
.
_complex_data
=
{
"creation_date"
:
datetime
.
datetime
(
2011
,
12
,
25
,
12
,
45
,
00
),
"name"
:
"name"
,
"sub_data_list"
:
[
{
"sub_id"
:
1
,
"sub_name"
:
"first"
},
{
"sub_id"
:
2
,
"sub_name"
:
"second"
}
]
}
def
test_parse
(
self
):
def
test_parse
(
self
):
parser
=
XMLParser
(
None
)
parser
=
XMLParser
(
None
)
(
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
):
parser
=
XMLParser
(
None
)
(
data
,
files
)
=
parser
.
parse
(
self
.
_complex_data_input
)
self
.
assertEqual
(
data
,
self
.
_complex_data
)
djangorestframework/tests/renderers.py
View file @
21776c0d
...
@@ -283,72 +283,6 @@ if YAMLRenderer:
...
@@ -283,72 +283,6 @@ if YAMLRenderer:
self
.
assertEquals
(
obj
,
data
)
self
.
assertEquals
(
obj
,
data
)
class
XMLRendererTestCase
(
TestCase
):
"""
Tests specific to the XML Renderer
"""
def
test_render_string
(
self
):
"""
Test XML rendering.
"""
renderer
=
XMLRenderer
(
None
)
content
=
renderer
.
render
({
'field'
:
'astring'
},
'application/xml'
)
self
.
assertXMLContains
(
content
,
'<field>astring</field>'
)
def
test_render_integer
(
self
):
"""
Test XML rendering.
"""
renderer
=
XMLRenderer
(
None
)
content
=
renderer
.
render
({
'field'
:
111
},
'application/xml'
)
self
.
assertXMLContains
(
content
,
'<field>111</field>'
)
def
test_render_datetime
(
self
):
"""
Test XML rendering.
"""
renderer
=
XMLRenderer
(
None
)
content
=
renderer
.
render
({
'field'
:
datetime
.
datetime
(
2011
,
12
,
25
,
12
,
45
,
00
)
},
'application/xml'
)
self
.
assertXMLContains
(
content
,
'<field>2011-12-25 12:45:00</field>'
)
def
test_render_float
(
self
):
"""
Test XML rendering.
"""
renderer
=
XMLRenderer
(
None
)
content
=
renderer
.
render
({
'field'
:
123.4
},
'application/xml'
)
self
.
assertXMLContains
(
content
,
'<field>123.4</field>'
)
def
test_render_decimal
(
self
):
"""
Test XML rendering.
"""
renderer
=
XMLRenderer
(
None
)
content
=
renderer
.
render
({
'field'
:
Decimal
(
'111.2'
)},
'application/xml'
)
self
.
assertXMLContains
(
content
,
'<field>111.2</field>'
)
def
test_render_none
(
self
):
"""
Test XML rendering.
"""
renderer
=
XMLRenderer
(
None
)
content
=
renderer
.
render
({
'field'
:
None
},
'application/xml'
)
self
.
assertXMLContains
(
content
,
'<field></field>'
)
def
assertXMLContains
(
self
,
xml
,
string
):
self
.
assertTrue
(
xml
.
startswith
(
'<?xml version="1.0" encoding="utf-8"?>
\n
<root>'
))
self
.
assertTrue
(
xml
.
endswith
(
'</root>'
))
self
.
assertTrue
(
string
in
xml
,
'
%
r not in
%
r'
%
(
string
,
xml
))
class
HTMLView
(
View
):
renderers
=
(
DocumentingHTMLRenderer
)
def
get
(
self
,
request
,
**
kwargs
):
return
'text'
urlpatterns
+=
patterns
(
''
,
urlpatterns
+=
patterns
(
''
,
url
(
r'^/html$'
,
HTMLView
.
as_view
()),
url
(
r'^/html$'
,
HTMLView
.
as_view
()),
)
)
...
@@ -429,6 +363,21 @@ class XMLRendererTestCase(TestCase):
...
@@ -429,6 +363,21 @@ class XMLRendererTestCase(TestCase):
Tests specific to the XML Renderer
Tests specific to the XML Renderer
"""
"""
_complex_data
=
{
"creation_date"
:
datetime
.
datetime
(
2011
,
12
,
25
,
12
,
45
,
00
),
"name"
:
"name"
,
"sub_data_list"
:
[
{
"sub_id"
:
1
,
"sub_name"
:
"first"
},
{
"sub_id"
:
2
,
"sub_name"
:
"second"
}
]
}
def
test_render_string
(
self
):
def
test_render_string
(
self
):
"""
"""
Test XML rendering.
Test XML rendering.
...
@@ -479,56 +428,28 @@ class XMLRendererTestCase(TestCase):
...
@@ -479,56 +428,28 @@ class XMLRendererTestCase(TestCase):
content
=
renderer
.
render
({
'field'
:
None
},
'application/xml'
)
content
=
renderer
.
render
({
'field'
:
None
},
'application/xml'
)
self
.
assertXMLContains
(
content
,
'<field></field>'
)
self
.
assertXMLContains
(
content
,
'<field></field>'
)
def
test_render_
and_parse_
complex_data
(
self
):
def
test_render_complex_data
(
self
):
"""
"""
Test XML rendering.
Test XML rendering.
"""
"""
renderer
=
XMLRenderer
(
None
)
renderer
=
XMLRenderer
(
None
)
complex_data_in
=
{
content
=
renderer
.
render
(
self
.
_complex_data
,
'application/xml'
)
"creation_date"
:
datetime
.
datetime
(
2011
,
12
,
25
,
12
,
45
,
00
),
self
.
assertXMLContains
(
content
,
'<sub_name>first</sub_name>'
)
"name"
:
"name"
,
self
.
assertXMLContains
(
content
,
'<sub_name>second</sub_name>'
)
"sub_data_list"
:
[
{
"sub_id"
:
1
,
"sub_name"
:
"first"
},
{
"sub_id"
:
2
,
"sub_name"
:
"second"
}
]
}
content
=
StringIO
(
renderer
.
render
(
complex_data_in
,
'application/xml'
))
def
test_render_and_parse_complex_data
(
self
):
"""
Test XML rendering.
"""
renderer
=
XMLRenderer
(
None
)
content
=
StringIO
(
renderer
.
render
(
self
.
_complex_data
,
'application/xml'
))
parser
=
XMLParser
(
None
)
parser
=
XMLParser
(
None
)
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
(
complex_data_in
),
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
.
assertDictEqual
(
complex_data_in
,
complex_data_out
,
error_msg
)
self
.
assertDictEqual
(
self
.
_complex_data
,
complex_data_out
,
error_msg
)
def
assertXMLContains
(
self
,
xml
,
string
):
def
assertXMLContains
(
self
,
xml
,
string
):
self
.
assertTrue
(
xml
.
startswith
(
'<?xml version="1.0" encoding="utf-8"?>
\n
<root>'
))
self
.
assertTrue
(
xml
.
startswith
(
'<?xml version="1.0" encoding="utf-8"?>
\n
<root>'
))
self
.
assertTrue
(
xml
.
endswith
(
'</root>'
))
self
.
assertTrue
(
xml
.
endswith
(
'</root>'
))
self
.
assertTrue
(
string
in
xml
,
'
%
r not in
%
r'
%
(
string
,
xml
))
self
.
assertTrue
(
string
in
xml
,
'
%
r not in
%
r'
%
(
string
,
xml
))
\ No newline at end of file
class
Issue122Tests
(
TestCase
):
"""
Tests that covers #122.
"""
urls
=
'djangorestframework.tests.renderers'
def
test_only_html_renderer
(
self
):
"""
Test if no recursion occurs.
"""
resp
=
self
.
client
.
get
(
'/html'
)
def
test_html_renderer_is_first
(
self
):
"""
Test if no recursion occurs.
"""
resp
=
self
.
client
.
get
(
'/html1'
)
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