try:
val = next(data)
except StopIteration:
- pass
+ if field.required:
+ raise ValueError("Required field {}.{} was not present".format(clazz.__name__, name))
else:
deg = self.parse_n_deg(field, val)
setattr(seg, name, deg)
encryption_algorithm = DataElementGroupField(type=EncryptionAlgorithm)
key_name = DataElementGroupField(type=KeyName)
compression_function = DataElementField(type='code', max_length=3)
- certificate = DataElementGroupField(type=Certificate)
+ certificate = DataElementGroupField(type=Certificate, required=False)
class HNSHK4(FinTS3Segment):
security_profile = DataElementGroupField(type=SecurityProfile)
hash_algorithm = DataElementGroupField(type=HashAlgorithm)
signature_algorithm = DataElementGroupField(type=SignatureAlgorithm)
key_name = DataElementGroupField(type=KeyName)
- certificate = DataElementGroupField(type=Certificate)
+ certificate = DataElementGroupField(type=Certificate, required=False)
with pytest.raises(ValueError):
FinTS3Parser.explode_segments(message5)
+
+ message6 = rb"""HNHBS:5:1'"""
+ with pytest.raises(ValueError, match='^Required field'):
+ m = FinTS3Parser().parse_message(message6)
+