Newer
Older
from django.core.exceptions import ValidationError
from django.test import TestCase
from .fields import AddressField
class TestRequiredFields(TestCase):
def build_validation_data(self, fields=None, required=None):
if fields is None:
fields = []
if required is None:
required = []
'fields': [{field: {'label': field}} for field in set(fields + required)],
'required': required,
}}
def test_non_required(self):
field = AddressField()
field.data = self.build_validation_data(fields=['postalcode'])
field.clean({'country': 'COUNTRY'})
def test_non_required_blank_data(self):
field = AddressField()
field.data = self.build_validation_data(fields=['postalcode'])
field.clean({'country': 'COUNTRY', 'postalcode': ''})
def test_one_field_required(self):
field = AddressField()
field.data = self.build_validation_data(required=['postalcode'])
with self.assertRaises(ValidationError):
field.clean({'country': 'COUNTRY'})
def test_one_field_required_blank_data(self):
field = AddressField()
field.data = self.build_validation_data(required=['postalcode'])
with self.assertRaises(ValidationError):
field.clean({'country': 'COUNTRY', 'postalcode': ''})
def test_one_field_required_supplied_data(self):
field = AddressField()
field.data = self.build_validation_data(required=['postalcode'])
field.clean({'country': 'COUNTRY', 'postalcode': 'BS1 2AB'})