From: Henryk Plötz Date: Mon, 10 Sep 2018 16:39:58 +0000 (+0200) Subject: Test 2step transfer X-Git-Tag: v2.0.0~1^2~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd86addf58b8f3c8cbee8f71b541e4f6a2a0cb34;p=thirdparty%2Fpython-fints.git Test 2step transfer --- diff --git a/tests/conftest.py b/tests/conftest.py index 2894b4e..509a524 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -78,6 +78,31 @@ def fints_server(): if memomatch and recvrmatch and amountmatch: if memomatch.group(1).endswith('1step'): result.append("HIRMS::2:{}+0010::Transfer {} to {} re {}'".format(segno, amountmatch.group(1), recvrmatch.group(1), repr(memomatch.group(1)).replace("'", "?'")).encode('iso-8859-1')) + else: + hktan = re.search(rb"'HKTAN:(\d+):(\d+)", message) + if hktan: + ref = uuid.uuid4().hex + datadict.setdefault('pending', {})[ref] = { + 'seg': segno, + 'pain': pain, + 'memo': memomatch.group(1), + 'recv': recvrmatch.group(1), + 'amount': amountmatch.group(1), + } + result.append("HIRMS::2:{}+0030::Auftragsfreigabe erforderlich'".format(hktan.group(1).decode('us-ascii')).encode('us-ascii')) + result.append("HITAN::{}:{}+2++{}+Geben Sie die TAN an'".format(hktan.group(2).decode('us-ascii'), hktan.group(1).decode('us-ascii'), ref).encode('us-ascii')) + + hktan = re.search(rb"'HKTAN:(\d+):(\d+)\+2\+\+\+\+([^+]+)\+", message) + if hktan: + segno = hktan.group(1).decode('us-ascii') + tanver = hktan.group(2).decode('us-ascii') + ref = hktan.group(3).decode('us-ascii') + + task = datadict.setdefault('pending', {}).get(ref, None) + if task: + result.append("HIRMS::2:{}+0010::Transfer {} to {} re {}'".format(segno, task['amount'], task['recv'], repr(task['memo']).replace("'", "?'")).encode('iso-8859-1')) + + datadict['pending'].pop(ref, None) return b"".join(result) diff --git a/tests/test_client.py b/tests/test_client.py index d791027..8fd1f48 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -84,3 +84,22 @@ def test_transfer_1step_regression(fints_client): assert isinstance(a, TransactionResponse) assert a.responses[0].text == "Transfer 1.23 to DE111234567800000002 re 'Test transfer 1step'" + +def test_transfer_2step(fints_client): + with fints_client: + accounts = fints_client.get_sepa_accounts() + a = fints_client.simple_sepa_transfer( + accounts[0], + 'DE111234567800000002', + 'GENODE00TES', + 'Test Receiver', + Decimal('2.34'), + 'Test Sender', + 'Test transfer 2step' + ) + + assert isinstance(a, NeedTANResponse) + + b = fints_client.send_tan(a, '123456') + assert b.status == ResponseStatus.SUCCESS + assert b.responses[0].text == "Transfer 2.34 to DE111234567800000002 re 'Test transfer 2step'"