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
1c10886e
Commit
1c10886e
authored
Mar 31, 2014
by
Xavier Ordoquy
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1493 from r4vi/fieldValidator-not-applied
add regression tests for field Validators
parents
73cd4e23
3560796b
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
0 deletions
+44
-0
rest_framework/tests/test_validation.py
+44
-0
No files found.
rest_framework/tests/test_validation.py
View file @
1c10886e
from
__future__
import
unicode_literals
from
__future__
import
unicode_literals
from
django.core.validators
import
MaxValueValidator
from
django.db
import
models
from
django.db
import
models
from
django.test
import
TestCase
from
django.test
import
TestCase
from
rest_framework
import
generics
,
serializers
,
status
from
rest_framework
import
generics
,
serializers
,
status
...
@@ -102,3 +103,46 @@ class TestAvoidValidation(TestCase):
...
@@ -102,3 +103,46 @@ class TestAvoidValidation(TestCase):
self
.
assertFalse
(
serializer
.
is_valid
())
self
.
assertFalse
(
serializer
.
is_valid
())
self
.
assertDictEqual
(
serializer
.
errors
,
self
.
assertDictEqual
(
serializer
.
errors
,
{
'non_field_errors'
:
[
'Invalid data'
]})
{
'non_field_errors'
:
[
'Invalid data'
]})
# regression tests for issue: 1493
class
ValidationMaxValueValidatorModel
(
models
.
Model
):
number_value
=
models
.
PositiveIntegerField
(
validators
=
[
MaxValueValidator
(
100
)])
class
ValidationMaxValueValidatorModelSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
ValidationMaxValueValidatorModel
class
UpdateMaxValueValidationModel
(
generics
.
RetrieveUpdateDestroyAPIView
):
model
=
ValidationMaxValueValidatorModel
serializer_class
=
ValidationMaxValueValidatorModelSerializer
class
TestMaxValueValidatorValidation
(
TestCase
):
def
test_max_value_validation_serializer_success
(
self
):
serializer
=
ValidationMaxValueValidatorModelSerializer
(
data
=
{
'number_value'
:
99
})
self
.
assertTrue
(
serializer
.
is_valid
())
def
test_max_value_validation_serializer_fails
(
self
):
serializer
=
ValidationMaxValueValidatorModelSerializer
(
data
=
{
'number_value'
:
101
})
self
.
assertFalse
(
serializer
.
is_valid
())
self
.
assertDictEqual
({
'number_value'
:
[
'Ensure this value is less than or equal to 100.'
]},
serializer
.
errors
)
def
test_max_value_validation_success
(
self
):
obj
=
ValidationMaxValueValidatorModel
.
objects
.
create
(
number_value
=
100
)
request
=
factory
.
patch
(
'/{0}'
.
format
(
obj
.
pk
),
{
'number_value'
:
98
},
format
=
'json'
)
view
=
UpdateMaxValueValidationModel
()
.
as_view
()
response
=
view
(
request
,
pk
=
obj
.
pk
)
.
render
()
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
def
test_max_value_validation_fail
(
self
):
obj
=
ValidationMaxValueValidatorModel
.
objects
.
create
(
number_value
=
100
)
request
=
factory
.
patch
(
'/{0}'
.
format
(
obj
.
pk
),
{
'number_value'
:
101
},
format
=
'json'
)
view
=
UpdateMaxValueValidationModel
()
.
as_view
()
response
=
view
(
request
,
pk
=
obj
.
pk
)
.
render
()
self
.
assertEqual
(
response
.
content
,
'{"number_value": ["Ensure this value is less than or equal to 100."]}'
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_400_BAD_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