From: Henryk Plötz Date: Sat, 11 Aug 2018 17:21:48 +0000 (+0200) Subject: Change Model: make all ParameterSegment subclasses "parameters" field singular X-Git-Tag: v2.0.0~1^2~119 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d6833ed0ba1257736cafbb4bf073ff7dfc6f65c;p=thirdparty%2Fpython-fints.git Change Model: make all ParameterSegment subclasses "parameters" field singular --- diff --git a/fints/dialog.py b/fints/dialog.py index dc3c395..f7f6c4a 100644 --- a/fints/dialog.py +++ b/fints/dialog.py @@ -60,9 +60,9 @@ class FinTSDialog: self.systemid = resp.get_systemid() self.dialogid = resp.get_dialog_id() self.bankname = resp.get_bank_name() - self.hksalversion = resp.get_hksal_max_version() - self.hkkazversion = resp.get_hkkaz_max_version() - self.hktanversion = resp._get_segment_max_version('HKTAN') + self.hksalversion = resp.get_segment_max_version('HIKAZS') + self.hkkazversion = resp.get_segment_max_version('HISALS') + self.hktanversion = resp.get_segment_max_version('HKTAN') self.tan_mechs = resp.get_supported_tan_mechanisms() logger.debug('Bank name: {}'.format(self.bankname)) @@ -107,7 +107,7 @@ class FinTSDialog: msg.dialogid = self.dialogid try: - resp = FinTSResponse(self.connection.send(msg)) + resp = self.connection.send(msg) if not resp.is_success(): raise FinTSDialogError( resp.get_summary_by_segment() diff --git a/fints/message.py b/fints/message.py index 4b165d0..eaa5def 100644 --- a/fints/message.py +++ b/fints/message.py @@ -90,11 +90,8 @@ class FinTSResponse(SegmentSequence): raise ValueError('Could not find systemid') return seg.customer_system_id - def get_hkkaz_max_version(self): - return max((seg.header.version for seg in self.find_segments('HIKAZS')), default=3) - - def get_hksal_max_version(self): - return max((seg.header.version for seg in self.find_segments('HISALS')), default=3) + def get_segment_max_version(self, type): + return max((seg.header.version for seg in self.find_segments(type)), default=3) def get_supported_tan_mechanisms(self): tan_methods = [] @@ -113,8 +110,9 @@ class FinTSResponse(SegmentSequence): ) ) - if seg.parameters.twostep_parameters.security_function in tan_methods: - methods.append(method) + for params in seg.parameter.twostep_parameters: + if params.security_function in tan_methods: + methods.append(params) return methods diff --git a/fints/segments/__init__.py b/fints/segments/__init__.py index 1c77c9e..8f01aff 100644 --- a/fints/segments/__init__.py +++ b/fints/segments/__init__.py @@ -152,17 +152,17 @@ class ParameterSegment(FinTS3Segment): security_class = DataElementField(type='num', length=1, _d="Sicherheitsklasse") class HITANS1(ParameterSegment): - parameters = DataElementGroupField(type=ParameterTwostepTAN1) + parameter = DataElementGroupField(type=ParameterTwostepTAN1) class HITANS3(ParameterSegment): - parameters = DataElementGroupField(type=ParameterTwostepTAN3) + parameter = DataElementGroupField(type=ParameterTwostepTAN3) class HIPINS1(ParameterSegment): """PIN/TAN-spezifische Informationen, version 1 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN """ - parameters = DataElementGroupField(type=ParameterPinTan, _d="Parameter PIN/TAN-spezifische Informationen") + parameter = DataElementGroupField(type=ParameterPinTan, _d="Parameter PIN/TAN-spezifische Informationen") class HIBPA3(FinTS3Segment): diff --git a/tests/test_formals.py b/tests/test_formals.py index 67d7bda..3575d0b 100644 --- a/tests/test_formals.py +++ b/tests/test_formals.py @@ -352,7 +352,7 @@ def test_find_1(): assert m.find_segment_first('ITST') is None - assert len( m.find_segment_first('HITANS', 1).parameters.twostep_parameters ) == 2 - assert len( m.find_segment_first('HITANS', 3).parameters.twostep_parameters ) == 6 + assert len( m.find_segment_first('HITANS', 1).parameter.twostep_parameters ) == 2 + assert len( m.find_segment_first('HITANS', 3).parameter.twostep_parameters ) == 6 assert m.find_segment_first('HITANS', recurse=False) is None