def set_len_and_chksum(self): """ Assign length and checksum based on current contents """ length, raw_checksum = pyfixmsg.len_and_chsum(self) self[9] = length self[10] = self.checksum(raw_checksum)
def checksum(self, value=None): """ FIX checksum """ if value is None: value = pyfixmsg.len_and_chsum(self)[1] % 256 return '{0:03d}'.format(value % 256)
def test_checksum(self): a = self.FixMessage() a.load_fix(self.fixmessage) # assert '019' == a.calculate_checksum() a = self.FixMessage() a.load_fix(b'8=FIX.4.2|9=49|35=5|34=1|49=WXYZ|52=20150916-04:14:05.306|56=AA|10=191|', separator='|') assert len_and_chsum(a) == (49, 3263) assert '191' == a.calculate_checksum()
def length(self): """ Length of the body of the message in bytes """ return pyfixmsg.len_and_chsum(self)[0]