add format interchange functions, add tests, fix stuff
This commit is contained in:
parent
6af5067fca
commit
8f86f76167
7 changed files with 298 additions and 146 deletions
|
@ -1,17 +1,15 @@
|
|||
import unittest
|
||||
import decimal
|
||||
from pyaccuwage.fields import TextField
|
||||
from pyaccuwage.fields import IntegerField
|
||||
from pyaccuwage.fields import StateField
|
||||
from pyaccuwage.fields import BlankField
|
||||
from pyaccuwage.fields import ZeroField
|
||||
from pyaccuwage.fields import MoneyField
|
||||
# from pyaccuwage.fields import IntegerField
|
||||
# from pyaccuwage.fields import StateField
|
||||
# from pyaccuwage.fields import BlankField
|
||||
# from pyaccuwage.fields import ZeroField
|
||||
# from pyaccuwage.fields import MoneyField
|
||||
from pyaccuwage.fields import ValidationError
|
||||
from pyaccuwage.model import Model
|
||||
|
||||
|
||||
class TestTextField(unittest.TestCase):
|
||||
|
||||
def testStringShortOptional(self):
|
||||
field = TextField(max_length=6, required=False)
|
||||
field.validate() # optional
|
||||
|
@ -30,43 +28,6 @@ class TestTextField(unittest.TestCase):
|
|||
def testStringLongOptional(self):
|
||||
field = TextField(max_length=6, required=False)
|
||||
field.value = 'Hello, World!' # too long
|
||||
self.assertEqual(len(field.get_data()), field.max_length)
|
||||
|
||||
|
||||
class TestModelOutput(unittest.TestCase):
|
||||
class TestModel(Model):
|
||||
record_length = 128
|
||||
record_identifier = 'TEST' # 4 bytes
|
||||
field1 = TextField(max_length=16)
|
||||
field2 = IntegerField(max_length=16)
|
||||
blank1 = BlankField(max_length=16)
|
||||
zero1 = ZeroField(max_length=16)
|
||||
money = MoneyField(max_length=32)
|
||||
state_txt = StateField()
|
||||
state_num = StateField(use_numeric=True)
|
||||
blank2 = BlankField(max_length=24)
|
||||
|
||||
def setUp(self):
|
||||
self.model = TestModelOutput.TestModel()
|
||||
|
||||
def testModelOutput(self):
|
||||
model = self.model
|
||||
model.field1.value = 'Hello, sir!'
|
||||
model.field2.value = 12345
|
||||
model.money.value = decimal.Decimal('1234.56')
|
||||
model.state_txt.value = 'IA'
|
||||
model.state_num.value = 'IA'
|
||||
|
||||
expected = b''.join([
|
||||
b'TEST',
|
||||
b'HELLO, SIR!'.ljust(16),
|
||||
b'12345'.zfill(16),
|
||||
b' ' * 16,
|
||||
b'0' * 16,
|
||||
b'123456'.zfill(32),
|
||||
b'IA',
|
||||
b'19',
|
||||
b' ' * 24,
|
||||
])
|
||||
|
||||
self.assertEqual(model.output(), expected)
|
||||
data = field.get_data()
|
||||
self.assertEqual(len(data), field.max_length)
|
||||
self.assertEqual(data, b'HELLO,')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue