]> git.ipfire.org Git - thirdparty/python-fints.git/commitdiff
Change Model: make all ParameterSegment subclasses "parameters" field singular
authorHenryk Plötz <henryk@ploetzli.ch>
Sat, 11 Aug 2018 17:21:48 +0000 (19:21 +0200)
committerRaphael Michel <mail@raphaelmichel.de>
Mon, 3 Dec 2018 18:34:17 +0000 (19:34 +0100)
fints/dialog.py
fints/message.py
fints/segments/__init__.py
tests/test_formals.py

index dc3c395f9a19c892cdd6e5e3242a09d1066716dc..f7f6c4a43e9a6ed4d03c86bab2b4e31933a231d8 100644 (file)
@@ -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()
index 4b165d0069005c4e545cc988392c601038949553..eaa5def698afe4dc466e5662fd6948c46d86d359 100644 (file)
@@ -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
 
index 1c77c9ee879c1afc1c1e999396a1360012a1efe4..8f01aff81cd9b74825eb5b7f584784058c7a21ad 100644 (file)
@@ -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):
index 67d7bda73aeea883e70342188d8406c6965304fa..3575d0b29bc86062984400efcf90109ff895c028 100644 (file)
@@ -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