add 'blank' field option to allow empty text in required fields (default: false)
This commit is contained in:
parent
74b7935ced
commit
5f4dc8b80f
5 changed files with 71 additions and 9 deletions
|
@ -8,6 +8,7 @@ from pyaccuwage.fields import StateField
|
|||
from pyaccuwage.fields import TextField
|
||||
from pyaccuwage.fields import ZeroField
|
||||
from pyaccuwage.fields import StaticField
|
||||
from pyaccuwage.fields import ValidationError
|
||||
from pyaccuwage.model import Model
|
||||
|
||||
class TestModelOutput(unittest.TestCase):
|
||||
|
@ -90,7 +91,7 @@ class TestFileFormats(unittest.TestCase):
|
|||
record_identifier = 'B' # 1 byte
|
||||
zero1 = ZeroField(max_length=32)
|
||||
text1 = TextField(max_length=71)
|
||||
text2 = TextField(max_length=20)
|
||||
text2 = TextField(max_length=20, required=False)
|
||||
blank2 = BlankField(max_length=4)
|
||||
|
||||
record_types = [TestModelA, TestModelB]
|
||||
|
@ -130,3 +131,49 @@ class TestFileFormats(unittest.TestCase):
|
|||
original_bytes = pyaccuwage.dumps(records)
|
||||
reloaded_bytes = pyaccuwage.dumps(records_loaded)
|
||||
self.assertEqual(original_bytes, reloaded_bytes)
|
||||
|
||||
|
||||
class TestRequiredFields(unittest.TestCase):
|
||||
def createTestRecord(self, required=False, blank=False):
|
||||
class Record(pyaccuwage.model.Model):
|
||||
record_length = 16
|
||||
record_identifier = ''
|
||||
test_field = TextField(max_length=16, required=required, blank=blank)
|
||||
record = Record()
|
||||
def dump():
|
||||
return pyaccuwage.dumps([record])
|
||||
return (record, dump)
|
||||
|
||||
def testRequiredBlankField(self):
|
||||
(record, dump) = self.createTestRecord(required=True, blank=True)
|
||||
record.test_field.value # if nothing is ever assigned, raise error
|
||||
self.assertRaises(ValidationError, dump)
|
||||
record.test_field.value = '' # value may be empty string
|
||||
dump()
|
||||
|
||||
def testRequiredNonblankField(self):
|
||||
(record, dump) = self.createTestRecord(required=True, blank=False)
|
||||
record.test_field.value # if nothing is ever assigned, raise error
|
||||
self.assertRaises(ValidationError, dump)
|
||||
record.test_field.value = '' # value must not be empty string
|
||||
self.assertRaises(ValidationError, dump)
|
||||
record.test_field.value = 'hello'
|
||||
dump()
|
||||
|
||||
def testOptionalBlankField(self):
|
||||
(record, dump) = self.createTestRecord(required=False, blank=True)
|
||||
record.test_field.value # OK if nothing is ever assigned
|
||||
dump()
|
||||
record.test_field.value = '' # OK if empty string is assigned
|
||||
dump()
|
||||
record.test_field.value = 'hello'
|
||||
dump()
|
||||
|
||||
def testOptionalNonBlankField(self):
|
||||
(record, dump) = self.createTestRecord(required=False, blank=False)
|
||||
record.test_field.value # OK if nothing is ever assigned
|
||||
dump()
|
||||
record.test_field.value = '' # OK if empty string is assigned
|
||||
dump()
|
||||
record.test_field.value = 'hello'
|
||||
dump()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue