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
4c41f2bf
Commit
4c41f2bf
authored
Nov 30, 2016
by
Xavier Ordoquy
Committed by
GitHub
Nov 30, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4715 from auvipy/pytest4
converted test asserts of generics-test to pytest
parents
f2a82526
10b5f36f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
51 deletions
+52
-51
tests/test_generics.py
+52
-51
No files found.
tests/test_generics.py
View file @
4c41f2bf
...
...
@@ -98,8 +98,8 @@ class TestRootView(TestCase):
request
=
factory
.
get
(
'/'
)
with
self
.
assertNumQueries
(
1
):
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
response
.
data
,
self
.
data
)
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
response
.
data
==
self
.
data
def
test_post_root_view
(
self
):
"""
...
...
@@ -109,10 +109,10 @@ class TestRootView(TestCase):
request
=
factory
.
post
(
'/'
,
data
,
format
=
'json'
)
with
self
.
assertNumQueries
(
1
):
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_201_CREATED
)
self
.
assertEqual
(
response
.
data
,
{
'id'
:
4
,
'text'
:
'foobar'
})
assert
response
.
status_code
==
status
.
HTTP_201_CREATED
assert
response
.
data
==
{
'id'
:
4
,
'text'
:
'foobar'
}
created
=
self
.
objects
.
get
(
id
=
4
)
self
.
assertEqual
(
created
.
text
,
'foobar'
)
assert
created
.
text
==
'foobar'
def
test_put_root_view
(
self
):
"""
...
...
@@ -122,8 +122,8 @@ class TestRootView(TestCase):
request
=
factory
.
put
(
'/'
,
data
,
format
=
'json'
)
with
self
.
assertNumQueries
(
0
):
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_405_METHOD_NOT_ALLOWED
)
self
.
assertEqual
(
response
.
data
,
{
"detail"
:
'Method "PUT" not allowed.'
})
assert
response
.
status_code
==
status
.
HTTP_405_METHOD_NOT_ALLOWED
assert
response
.
data
==
{
"detail"
:
'Method "PUT" not allowed.'
}
def
test_delete_root_view
(
self
):
"""
...
...
@@ -132,8 +132,8 @@ class TestRootView(TestCase):
request
=
factory
.
delete
(
'/'
)
with
self
.
assertNumQueries
(
0
):
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_405_METHOD_NOT_ALLOWED
)
self
.
assertEqual
(
response
.
data
,
{
"detail"
:
'Method "DELETE" not allowed.'
})
assert
response
.
status_code
==
status
.
HTTP_405_METHOD_NOT_ALLOWED
assert
response
.
data
==
{
"detail"
:
'Method "DELETE" not allowed.'
}
def
test_post_cannot_set_id
(
self
):
"""
...
...
@@ -143,10 +143,10 @@ class TestRootView(TestCase):
request
=
factory
.
post
(
'/'
,
data
,
format
=
'json'
)
with
self
.
assertNumQueries
(
1
):
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_201_CREATED
)
self
.
assertEqual
(
response
.
data
,
{
'id'
:
4
,
'text'
:
'foobar'
})
assert
response
.
status_code
==
status
.
HTTP_201_CREATED
assert
response
.
data
==
{
'id'
:
4
,
'text'
:
'foobar'
}
created
=
self
.
objects
.
get
(
id
=
4
)
self
.
assertEqual
(
created
.
text
,
'foobar'
)
assert
created
.
text
==
'foobar'
def
test_post_error_root_view
(
self
):
"""
...
...
@@ -156,7 +156,7 @@ class TestRootView(TestCase):
request
=
factory
.
post
(
'/'
,
data
,
HTTP_ACCEPT
=
'text/html'
)
response
=
self
.
view
(
request
)
.
render
()
expected_error
=
'<span class="help-block">Ensure this field has no more than 100 characters.</span>'
self
.
assertIn
(
expected_error
,
response
.
rendered_content
.
decode
(
'utf-8'
)
)
assert
expected_error
in
response
.
rendered_content
.
decode
(
'utf-8'
)
EXPECTED_QUERIES_FOR_PUT
=
2
...
...
@@ -185,8 +185,8 @@ class TestInstanceView(TestCase):
request
=
factory
.
get
(
'/1'
)
with
self
.
assertNumQueries
(
1
):
response
=
self
.
view
(
request
,
pk
=
1
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
response
.
data
,
self
.
data
[
0
])
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
response
.
data
==
self
.
data
[
0
]
def
test_post_instance_view
(
self
):
"""
...
...
@@ -196,8 +196,8 @@ class TestInstanceView(TestCase):
request
=
factory
.
post
(
'/'
,
data
,
format
=
'json'
)
with
self
.
assertNumQueries
(
0
):
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_405_METHOD_NOT_ALLOWED
)
self
.
assertEqual
(
response
.
data
,
{
"detail"
:
'Method "POST" not allowed.'
})
assert
response
.
status_code
==
status
.
HTTP_405_METHOD_NOT_ALLOWED
assert
response
.
data
==
{
"detail"
:
'Method "POST" not allowed.'
}
def
test_put_instance_view
(
self
):
"""
...
...
@@ -207,10 +207,10 @@ class TestInstanceView(TestCase):
request
=
factory
.
put
(
'/1'
,
data
,
format
=
'json'
)
with
self
.
assertNumQueries
(
EXPECTED_QUERIES_FOR_PUT
):
response
=
self
.
view
(
request
,
pk
=
'1'
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
dict
(
response
.
data
),
{
'id'
:
1
,
'text'
:
'foobar'
})
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
dict
(
response
.
data
)
==
{
'id'
:
1
,
'text'
:
'foobar'
}
updated
=
self
.
objects
.
get
(
id
=
1
)
self
.
assertEqual
(
updated
.
text
,
'foobar'
)
assert
updated
.
text
==
'foobar'
def
test_patch_instance_view
(
self
):
"""
...
...
@@ -221,10 +221,10 @@ class TestInstanceView(TestCase):
with
self
.
assertNumQueries
(
EXPECTED_QUERIES_FOR_PUT
):
response
=
self
.
view
(
request
,
pk
=
1
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
response
.
data
,
{
'id'
:
1
,
'text'
:
'foobar'
})
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
response
.
data
==
{
'id'
:
1
,
'text'
:
'foobar'
}
updated
=
self
.
objects
.
get
(
id
=
1
)
self
.
assertEqual
(
updated
.
text
,
'foobar'
)
assert
updated
.
text
==
'foobar'
def
test_delete_instance_view
(
self
):
"""
...
...
@@ -233,10 +233,10 @@ class TestInstanceView(TestCase):
request
=
factory
.
delete
(
'/1'
)
with
self
.
assertNumQueries
(
2
):
response
=
self
.
view
(
request
,
pk
=
1
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_204_NO_CONTENT
)
self
.
assertEqual
(
response
.
content
,
six
.
b
(
''
)
)
assert
response
.
status_code
==
status
.
HTTP_204_NO_CONTENT
assert
response
.
content
==
six
.
b
(
''
)
ids
=
[
obj
.
id
for
obj
in
self
.
objects
.
all
()]
self
.
assertEqual
(
ids
,
[
2
,
3
])
assert
ids
==
[
2
,
3
]
def
test_get_instance_view_incorrect_arg
(
self
):
"""
...
...
@@ -246,7 +246,7 @@ class TestInstanceView(TestCase):
request
=
factory
.
get
(
'/a'
)
with
self
.
assertNumQueries
(
0
):
response
=
self
.
view
(
request
,
pk
=
'a'
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_404_NOT_FOUND
)
assert
response
.
status_code
==
status
.
HTTP_404_NOT_FOUND
def
test_put_cannot_set_id
(
self
):
"""
...
...
@@ -256,10 +256,10 @@ class TestInstanceView(TestCase):
request
=
factory
.
put
(
'/1'
,
data
,
format
=
'json'
)
with
self
.
assertNumQueries
(
EXPECTED_QUERIES_FOR_PUT
):
response
=
self
.
view
(
request
,
pk
=
1
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
response
.
data
,
{
'id'
:
1
,
'text'
:
'foobar'
})
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
response
.
data
==
{
'id'
:
1
,
'text'
:
'foobar'
}
updated
=
self
.
objects
.
get
(
id
=
1
)
self
.
assertEqual
(
updated
.
text
,
'foobar'
)
assert
updated
.
text
==
'foobar'
def
test_put_to_deleted_instance
(
self
):
"""
...
...
@@ -271,7 +271,7 @@ class TestInstanceView(TestCase):
request
=
factory
.
put
(
'/1'
,
data
,
format
=
'json'
)
with
self
.
assertNumQueries
(
1
):
response
=
self
.
view
(
request
,
pk
=
1
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_404_NOT_FOUND
)
assert
response
.
status_code
==
status
.
HTTP_404_NOT_FOUND
def
test_put_to_filtered_out_instance
(
self
):
"""
...
...
@@ -282,7 +282,7 @@ class TestInstanceView(TestCase):
filtered_out_pk
=
BasicModel
.
objects
.
filter
(
text
=
'filtered out'
)[
0
]
.
pk
request
=
factory
.
put
(
'/{0}'
.
format
(
filtered_out_pk
),
data
,
format
=
'json'
)
response
=
self
.
view
(
request
,
pk
=
filtered_out_pk
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_404_NOT_FOUND
)
assert
response
.
status_code
==
status
.
HTTP_404_NOT_FOUND
def
test_patch_cannot_create_an_object
(
self
):
"""
...
...
@@ -292,8 +292,8 @@ class TestInstanceView(TestCase):
request
=
factory
.
patch
(
'/999'
,
data
,
format
=
'json'
)
with
self
.
assertNumQueries
(
1
):
response
=
self
.
view
(
request
,
pk
=
999
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_404_NOT_FOUND
)
self
.
assertFalse
(
self
.
objects
.
filter
(
id
=
999
)
.
exists
()
)
assert
response
.
status_code
==
status
.
HTTP_404_NOT_FOUND
assert
not
self
.
objects
.
filter
(
id
=
999
)
.
exists
(
)
def
test_put_error_instance_view
(
self
):
"""
...
...
@@ -303,7 +303,7 @@ class TestInstanceView(TestCase):
request
=
factory
.
put
(
'/'
,
data
,
HTTP_ACCEPT
=
'text/html'
)
response
=
self
.
view
(
request
,
pk
=
1
)
.
render
()
expected_error
=
'<span class="help-block">Ensure this field has no more than 100 characters.</span>'
self
.
assertIn
(
expected_error
,
response
.
rendered_content
.
decode
(
'utf-8'
)
)
assert
expected_error
in
response
.
rendered_content
.
decode
(
'utf-8'
)
class
TestFKInstanceView
(
TestCase
):
...
...
@@ -363,8 +363,8 @@ class TestOverriddenGetObject(TestCase):
request
=
factory
.
get
(
'/1'
)
with
self
.
assertNumQueries
(
1
):
response
=
self
.
view
(
request
,
pk
=
1
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
response
.
data
,
self
.
data
[
0
])
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
response
.
data
==
self
.
data
[
0
]
# Regression test for #285
...
...
@@ -394,9 +394,9 @@ class TestCreateModelWithAutoNowAddField(TestCase):
data
=
{
'email'
:
'foobar@example.com'
,
'content'
:
'foobar'
}
request
=
factory
.
post
(
'/'
,
data
,
format
=
'json'
)
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_201_CREATED
)
assert
response
.
status_code
==
status
.
HTTP_201_CREATED
created
=
self
.
objects
.
get
(
id
=
1
)
self
.
assertEqual
(
created
.
content
,
'foobar'
)
assert
created
.
content
==
'foobar'
# Test for particularly ugly regression with m2m in browsable API
...
...
@@ -432,7 +432,7 @@ class TestM2MBrowsableAPI(TestCase):
request
=
factory
.
get
(
'/'
,
HTTP_ACCEPT
=
'text/html'
)
view
=
ExampleView
()
.
as_view
()
response
=
view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
assert
response
.
status_code
==
status
.
HTTP_200_OK
class
InclusiveFilterBackend
(
object
):
...
...
@@ -489,9 +489,9 @@ class TestFilterBackendAppliedToViews(TestCase):
root_view
=
RootView
.
as_view
(
filter_backends
=
(
InclusiveFilterBackend
,))
request
=
factory
.
get
(
'/'
)
response
=
root_view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
len
(
response
.
data
),
1
)
self
.
assertEqual
(
response
.
data
,
[{
'id'
:
1
,
'text'
:
'foo'
}])
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
len
(
response
.
data
)
==
1
assert
response
.
data
==
[{
'id'
:
1
,
'text'
:
'foo'
}]
def
test_get_root_view_filters_out_all_models_with_exclusive_filter_backend
(
self
):
"""
...
...
@@ -500,8 +500,8 @@ class TestFilterBackendAppliedToViews(TestCase):
root_view
=
RootView
.
as_view
(
filter_backends
=
(
ExclusiveFilterBackend
,))
request
=
factory
.
get
(
'/'
)
response
=
root_view
(
request
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
response
.
data
,
[])
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
response
.
data
==
[]
def
test_get_instance_view_filters_out_name_with_filter_backend
(
self
):
"""
...
...
@@ -510,8 +510,8 @@ class TestFilterBackendAppliedToViews(TestCase):
instance_view
=
InstanceView
.
as_view
(
filter_backends
=
(
ExclusiveFilterBackend
,))
request
=
factory
.
get
(
'/1'
)
response
=
instance_view
(
request
,
pk
=
1
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_404_NOT_FOUND
)
self
.
assertEqual
(
response
.
data
,
{
'detail'
:
'Not found.'
})
assert
response
.
status_code
==
status
.
HTTP_404_NOT_FOUND
assert
response
.
data
==
{
'detail'
:
'Not found.'
}
def
test_get_instance_view_will_return_single_object_when_filter_does_not_exclude_it
(
self
):
"""
...
...
@@ -520,8 +520,8 @@ class TestFilterBackendAppliedToViews(TestCase):
instance_view
=
InstanceView
.
as_view
(
filter_backends
=
(
InclusiveFilterBackend
,))
request
=
factory
.
get
(
'/1'
)
response
=
instance_view
(
request
,
pk
=
1
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertEqual
(
response
.
data
,
{
'id'
:
1
,
'text'
:
'foo'
})
assert
response
.
status_code
==
status
.
HTTP_200_OK
assert
response
.
data
==
{
'id'
:
1
,
'text'
:
'foo'
}
def
test_dynamic_serializer_form_in_browsable_api
(
self
):
"""
...
...
@@ -530,8 +530,9 @@ class TestFilterBackendAppliedToViews(TestCase):
view
=
DynamicSerializerView
.
as_view
()
request
=
factory
.
get
(
'/'
)
response
=
view
(
request
)
.
render
()
self
.
assertContains
(
response
,
'field_b'
)
self
.
assertNotContains
(
response
,
'field_a'
)
content
=
response
.
content
.
decode
(
'utf8'
)
assert
'field_b'
in
content
assert
'field_a'
not
in
content
class
TestGuardedQueryset
(
TestCase
):
...
...
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