From db65f0a20669a81cb7db4425d7d044b8ff49952a Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 13 Aug 2020 00:41:53 +0530 Subject: remove old tests, superseded by the JS-based harness --- tests/test_withdrawal.py | 156 ----------------------------------------------- 1 file changed, 156 deletions(-) delete mode 100644 tests/test_withdrawal.py (limited to 'tests/test_withdrawal.py') diff --git a/tests/test_withdrawal.py b/tests/test_withdrawal.py deleted file mode 100644 index 6392891f1..000000000 --- a/tests/test_withdrawal.py +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env python3 - -from taler.util.amount import Amount - -from tests import check_single_balance - - -def test_withdrawal(exchange, bank, wallet): - bank_user = bank.register_random_user() - - # assert that we start with no transactions - result = wallet.cmd("getTransactions") - assert not result["transactions"] - - # test withdrawal - amount_raw = Amount.parse("TESTKUDOS:5") - wallet.testing_withdraw(amount_raw.stringify(), exchange.url, bank.url) - - # check that balance is correct - result = wallet.cmd("getBalances") - amount_effective = Amount("TESTKUDOS", 4, 84000000) - check_single_balance(result["balances"], amount_effective) - - # assert that withdrawal shows up properly in transactions - result = wallet.cmd("getTransactions") - assert len(result["transactions"]) == 1 - transaction = result["transactions"][0] - assert transaction["type"] == "withdrawal" - assert Amount.parse(transaction["amountEffective"]) == amount_effective - assert Amount.parse(transaction["amountRaw"]) == amount_raw - assert transaction["exchangeBaseUrl"] == exchange.url - assert not transaction["pending"] - withdrawal_details = transaction["withdrawalDetails"] - assert withdrawal_details["type"] == "manual-transfer" - payto_list = ["payto://x-taler-bank/localhost/Exchange"] - assert withdrawal_details["exchangePaytoUris"] == payto_list - - # get a withdrawal URI - bank_uri_resp = bank.generate_withdraw_uri(bank_user, "TESTKUDOS:5") - uri = bank_uri_resp.taler_withdraw_uri - assert uri.startswith("taler+http://withdraw") - - # get withdrawal details from URI - result = wallet.cmd("getWithdrawalDetailsForUri", {"talerWithdrawUri": uri}) - assert Amount.parse(result["amount"]) == amount_raw - assert result["defaultExchangeBaseUrl"] == exchange.url - assert len(result["possibleExchanges"]) == 1 - assert result["possibleExchanges"][0]["exchangeBaseUrl"] == exchange.url - assert result["possibleExchanges"][0]["currency"] == "TESTKUDOS" - assert result["possibleExchanges"][0]["paytoUris"] == payto_list - - # check withdrawal details for amount - request = {"exchangeBaseUrl": exchange.url, "amount": amount_raw.stringify()} - result = wallet.cmd("getWithdrawalDetailsForAmount", request) - assert Amount.parse(result["amountRaw"]) == amount_raw - assert Amount.parse(result["amountEffective"]) == amount_effective - assert result["paytoUris"] == payto_list - assert not result["tosAccepted"] - - # get ToS - result = wallet.cmd("getExchangeTos", {"exchangeBaseUrl": exchange.url}) - assert result["currentEtag"] == exchange.terms_etag - assert result["tos"] == exchange.tos - - # accept ToS - request = {"exchangeBaseUrl": exchange.url, "etag": exchange.terms_etag} - wallet.cmd("setExchangeTosAccepted", request) - - # check that ToS are now shown as accepted - request = {"exchangeBaseUrl": exchange.url, "amount": amount_raw.stringify()} - result = wallet.cmd("getWithdrawalDetailsForAmount", request) - assert result["tosAccepted"] - - # accept withdrawal - request = {"exchangeBaseUrl": exchange.url, "talerWithdrawUri": uri} - result = wallet.cmd("acceptBankIntegratedWithdrawal", request) - assert result["confirmTransferUrl"].startswith(bank.url + "confirm-withdrawal/") - confirm_url = result["confirmTransferUrl"] - - # Let the wallet do its work. At this point, the bank-integrated - # withdrawal won't have succeeded yet, as it's not confirmed at the bank side. - wallet.run_pending() - - # check that balance is correct - result = wallet.cmd("getBalances") - check_single_balance(result["balances"], amount_effective, amount_effective) - - # assert that 2nd withdrawal shows up properly in transactions - result = wallet.cmd("getTransactions") - assert len(result["transactions"]) == 2 - transaction = result["transactions"][0] - assert transaction["type"] == "withdrawal" - assert Amount.parse(transaction["amountEffective"]) == amount_effective - assert Amount.parse(transaction["amountRaw"]) == amount_raw - assert transaction["exchangeBaseUrl"] == exchange.url - assert transaction["pending"] - withdrawal_details = transaction["withdrawalDetails"] - assert withdrawal_details["type"] == "taler-bank-integration-api" - assert not withdrawal_details["confirmed"] - assert withdrawal_details["bankConfirmationUrl"] == confirm_url - - # new withdrawal is newer than old one - timestamp0 = result["transactions"][0]["timestamp"]["t_ms"] - timestamp1 = result["transactions"][1]["timestamp"]["t_ms"] - assert timestamp0 > timestamp1 - - # now we actually confirm the withdrawal - bank.confirm_withdrawal(bank_user, bank_uri_resp.withdrawal_id) - # It might take some time until the exchange knows about the reserve, - # so we'll try until it works. - wallet.run_until_done() - - # check that balance is correct - result = wallet.cmd("getBalances") - check_single_balance( - result["balances"], Amount.parse("TESTKUDOS:9.68"), Amount.parse("TESTKUDOS:0"), - ) - - # check that transaction is no longer pending, but confirmed - result = wallet.cmd("getTransactions") - assert len(result["transactions"]) == 2 - transaction = result["transactions"][1] # TODO this transaction should be at the top now - assert transaction["type"] == "withdrawal" - assert not transaction["pending"] - assert transaction["withdrawalDetails"]["confirmed"] - - # one more manual withdrawal - request = {"exchangeBaseUrl": exchange.url, "amount": amount_raw.stringify()} - result = wallet.cmd("acceptManualWithdrawal", request) - assert len(result["exchangePaytoUris"]) == 1 - result["exchangePaytoUris"][0].startswith(payto_list[0]) - - # check that balance is correct - result = wallet.cmd("getBalances") - check_single_balance( - result["balances"], amount_effective + amount_effective, amount_effective - ) - - # assert that 3nd withdrawal shows up properly in transactions - result = wallet.cmd("getTransactions") - assert len(result["transactions"]) == 3 - transaction = result["transactions"][0] - assert transaction["type"] == "withdrawal" - assert Amount.parse(transaction["amountEffective"]) == amount_effective - assert Amount.parse(transaction["amountRaw"]) == amount_raw - assert transaction["exchangeBaseUrl"] == exchange.url - assert transaction["pending"] - withdrawal_details = transaction["withdrawalDetails"] - assert withdrawal_details["type"] == "manual-transfer" - assert len(withdrawal_details["exchangePaytoUris"]) == 1 - assert withdrawal_details["exchangePaytoUris"][0].startswith(payto_list[0]) - - # last withdrawal is newest - timestamp3 = transaction["timestamp"]["t_ms"] - assert timestamp3 > timestamp0 - assert timestamp3 > timestamp1 -- cgit v1.2.3