mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-23 15:02:55 +03:00
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
from rest_framework import fields
|
|
import pytest
|
|
|
|
|
|
class TestFieldOptions:
|
|
def test_required(self):
|
|
"""
|
|
By default a field must be included in the input.
|
|
"""
|
|
field = fields.IntegerField()
|
|
with pytest.raises(fields.ValidationError) as exc_info:
|
|
field.run_validation()
|
|
assert exc_info.value.messages == ['This field is required.']
|
|
|
|
def test_not_required(self):
|
|
"""
|
|
If `required=False` then a field may be omitted from the input.
|
|
"""
|
|
field = fields.IntegerField(required=False)
|
|
with pytest.raises(fields.SkipField):
|
|
field.run_validation()
|
|
|
|
def test_disallow_null(self):
|
|
"""
|
|
By default `None` is not a valid input.
|
|
"""
|
|
field = fields.IntegerField()
|
|
with pytest.raises(fields.ValidationError) as exc_info:
|
|
field.run_validation(None)
|
|
assert exc_info.value.messages == ['This field may not be null.']
|
|
|
|
def test_allow_null(self):
|
|
"""
|
|
If `allow_null=True` then `None` is a valid input.
|
|
"""
|
|
field = fields.IntegerField(allow_null=True)
|
|
output = field.run_validation(None)
|
|
assert output is None
|
|
|
|
def test_disallow_blank(self):
|
|
"""
|
|
By default '' is not a valid input.
|
|
"""
|
|
field = fields.CharField()
|
|
with pytest.raises(fields.ValidationError) as exc_info:
|
|
field.run_validation('')
|
|
assert exc_info.value.messages == ['This field may not be blank.']
|
|
|
|
def test_allow_blank(self):
|
|
"""
|
|
If `allow_blank=True` then '' is a valid input.
|
|
"""
|
|
field = fields.CharField(allow_blank=True)
|
|
output = field.run_validation('')
|
|
assert output is ''
|