]> git.ipfire.org Git - thirdparty/python-fints.git/commitdiff
Instead of stay_offline use a more versatile Enum FinTSClientMode
authorHenryk Plötz <henryk@ploetzli.ch>
Wed, 11 Sep 2019 10:26:00 +0000 (12:26 +0200)
committerHenryk Plötz <henryk@ploetzli.ch>
Wed, 11 Sep 2019 10:26:00 +0000 (12:26 +0200)
See https://github.com/raphaelm/python-fints/issues/72#issuecomment-530091412

fints/client.py
fints/dialog.py

index 712e52ac806df08aa419fa85be9d6b0317fffc37..dd9b005cee866f458917a8f8a2562965d95af9af 100644 (file)
@@ -151,12 +151,18 @@ class TransactionResponse:
         return "<{o.__class__.__name__}(status={o.status!r}, responses={o.responses!r}, data={o.data!r})>".format(o=self)
 
 
+class FinTSClientMode(Enum):
+    OFFLINE = 'offline'
+    NONINTERACTIVE = 'noninteractive'
+    INTERACTIVE = 'interactive'
+
+
 class FinTS3Client:
     def __init__(self,
                  bank_identifier, user_id, customer_id=None,
                  from_data: bytes=None,
                  product_id=None, product_version=version[:5],
-                 stay_offline=False):
+                 mode=FinTSClientMode.NONINTERACTIVE):
         self.accounts = []
         if isinstance(bank_identifier, BankIdentifier):
             self.bank_identifier = bank_identifier
@@ -180,7 +186,7 @@ class FinTS3Client:
         self.product_name = product_id
         self.product_version = product_version
         self.response_callbacks = []
-        self.stay_offline = stay_offline
+        self.mode = mode
         self._standing_dialog = None
 
         if from_data:
index 46d060bedaad14989a70a88b910d4cc6db224fe4..7392771925edd1a8e486d95d801ce8d6f004d269 100644 (file)
@@ -48,8 +48,9 @@ class FinTSDialog:
         if self.paused:
             raise FinTSDialogStateError("Cannot init() a paused dialog")
 
-        if self.client.stay_offline:
-            raise FinTSDialogOfflineError("Cannot open a dialog with stay_offline=True. "
+        from fints.client import FinTSClientMode
+        if self.client.mode == FinTSClientMode.OFFLINE:
+            raise FinTSDialogOfflineError("Cannot open a dialog with mode=FinTSClientMode.OFFLINE. "
                                           "This is a control flow error, no online functionality "
                                           "should have been attempted with this FinTSClient object.")