hopefully fix python 2 and 3 compatability
This commit is contained in:
parent
6381f8b1ec
commit
d08f1ca586
5 changed files with 169 additions and 89 deletions
72
tests/test_fields.py
Normal file
72
tests/test_fields.py
Normal file
|
@ -0,0 +1,72 @@
|
|||
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 ValidationError
|
||||
from pyaccuwage.model import Model
|
||||
|
||||
|
||||
class TestTextField(unittest.TestCase):
|
||||
|
||||
def testStringShortOptional(self):
|
||||
field = TextField(max_length=6, required=False)
|
||||
field.validate() # optional
|
||||
field.value = 'Hello'
|
||||
field.validate()
|
||||
self.assertEqual(field.get_data(), b'HELLO ')
|
||||
|
||||
def testStringShortRequired(self):
|
||||
field = TextField(max_length=6, required=True)
|
||||
with self.assertRaises(ValidationError):
|
||||
field.validate()
|
||||
field.value = 'Hello'
|
||||
field.validate()
|
||||
self.assertEqual(field.get_data(), b'HELLO ')
|
||||
|
||||
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)
|
Loading…
Add table
Add a link
Reference in a new issue