summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-10-30 22:12:02 +0100
committerChristian Grothoff <christian@grothoff.org>2020-10-30 22:17:37 +0100
commita79b67c726e7a2d2ef44102e883b98423d129fbd (patch)
tree16237b1a8cc14040b4c1d1b1fe31bab9a3129f25
parentafc72f1f4752340bfd119e3619a79fa2743d6478 (diff)
downloadexchange-a79b67c726e7a2d2ef44102e883b98423d129fbd.tar.gz
exchange-a79b67c726e7a2d2ef44102e883b98423d129fbd.tar.bz2
exchange-a79b67c726e7a2d2ef44102e883b98423d129fbd.zip
log more nicely if authentication failed; do use new changepassword_unsafe to set bank pw -- and not others; do show stderr output of pybank in test cases
-rwxr-xr-xcontrib/taler-bank-manage-testing13
-rw-r--r--src/testing/testing_api_cmd_bank_admin_add_incoming.c52
-rw-r--r--src/testing/testing_api_helpers_bank.c26
3 files changed, 52 insertions, 39 deletions
diff --git a/contrib/taler-bank-manage-testing b/contrib/taler-bank-manage-testing
index 29494e3a..4fa80b17 100755
--- a/contrib/taler-bank-manage-testing
+++ b/contrib/taler-bank-manage-testing
@@ -21,18 +21,7 @@ taler-bank-manage -c $1 --with-db $2 django provide_accounts
taler-bank-manage -c $1 --with-db $2 django add_bank_account 42
taler-bank-manage -c $1 --with-db $2 django add_bank_account 43
-# This is 'x' hashed by Django
-PW_HASH='pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs='
-
-# hack password hash directly into the database:
-echo "UPDATE auth_user SET password='$PW_HASH'" | psql -Aqt $2
-
-
-# Note that calling
-# taler-bank-manage -c $1 --with-db $2 django changepassword Bank x
-# does not work: (1) it always insists on going interactive, and (2)
-# rejects 'x' as a password.
-
+taler-bank-manage -c $1 --with-db $2 django changepassword_unsafe Exchange x
# Now run Django for good
exec taler-bank-manage -c $1 --with-db $2 $3
diff --git a/src/testing/testing_api_cmd_bank_admin_add_incoming.c b/src/testing/testing_api_cmd_bank_admin_add_incoming.c
index 5df691b3..0ea5a058 100644
--- a/src/testing/testing_api_cmd_bank_admin_add_incoming.c
+++ b/src/testing/testing_api_cmd_bank_admin_add_incoming.c
@@ -220,8 +220,28 @@ confirmation_cb (void *cls,
fts->reserve_history.details.in_details.wire_reference_size
= sizeof (fts->row_id_nbo);
fts->aih = NULL;
- if (MHD_HTTP_OK != http_status)
+ switch (http_status)
{
+ case MHD_HTTP_OK:
+ fts->serial_id = serial_id;
+ fts->timestamp = timestamp;
+ TALER_TESTING_interpreter_next (is);
+ return;
+ case MHD_HTTP_UNAUTHORIZED:
+ switch (fts->auth.method)
+ {
+ case TALER_BANK_AUTH_NONE:
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Authentication required, but none configure.\n");
+ break;
+ case TALER_BANK_AUTH_BASIC:
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Basic authentication (%s) failed.\n",
+ fts->auth.details.basic.username);
+ break;
+ }
+ break;
+ default:
if (0 != fts->do_retry)
{
fts->do_retry--;
@@ -229,8 +249,8 @@ confirmation_cb (void *cls,
(TALER_EC_DB_COMMIT_FAILED_ON_RETRY == ec) ||
(MHD_HTTP_INTERNAL_SERVER_ERROR == http_status) )
{
- GNUNET_log
- (GNUNET_ERROR_TYPE_INFO,
+ GNUNET_log (
+ GNUNET_ERROR_TYPE_INFO,
"Retrying fakebank transfer failed with %u/%d\n",
http_status,
(int) ec);
@@ -241,25 +261,21 @@ confirmation_cb (void *cls,
fts->backoff = GNUNET_TIME_randomized_backoff (fts->backoff,
MAX_BACKOFF);
fts->is->commands[fts->is->ip].num_tries++;
- fts->retry_task = GNUNET_SCHEDULER_add_delayed
- (fts->backoff,
- &do_retry,
- fts);
+ fts->retry_task = GNUNET_SCHEDULER_add_delayed (
+ fts->backoff,
+ &do_retry,
+ fts);
return;
}
}
- GNUNET_break (0);
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Fakebank returned HTTP status %u/%d\n",
- http_status,
- (int) ec);
- TALER_TESTING_interpreter_fail (is);
- return;
+ break;
}
-
- fts->serial_id = serial_id;
- fts->timestamp = timestamp;
- TALER_TESTING_interpreter_next (is);
+ GNUNET_break (0);
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Fakebank returned HTTP status %u/%d\n",
+ http_status,
+ (int) ec);
+ TALER_TESTING_interpreter_fail (is);
}
diff --git a/src/testing/testing_api_helpers_bank.c b/src/testing/testing_api_helpers_bank.c
index 48802e04..c42c52cd 100644
--- a/src/testing/testing_api_helpers_bank.c
+++ b/src/testing/testing_api_helpers_bank.c
@@ -120,7 +120,7 @@ TALER_TESTING_run_libeufin (const struct TALER_TESTING_BankConfiguration *bc)
char *curl_check_cmd;
nexus_proc = GNUNET_OS_start_process (
- GNUNET_OS_INHERIT_STD_NONE,
+ GNUNET_OS_INHERIT_STD_ERR,
NULL, NULL, NULL,
"libeufin-nexus",
"libeufin-nexus",
@@ -165,7 +165,7 @@ TALER_TESTING_run_libeufin (const struct TALER_TESTING_BankConfiguration *bc)
fprintf (stderr, "\n");
sandbox_proc = GNUNET_OS_start_process (
- GNUNET_OS_INHERIT_STD_NONE,
+ GNUNET_OS_INHERIT_STD_ERR,
NULL, NULL, NULL,
"libeufin-sandbox",
"libeufin-sandbox",
@@ -268,7 +268,7 @@ TALER_TESTING_run_bank (const char *config_filename,
}
GNUNET_CONFIGURATION_destroy (cfg);
bank_proc = GNUNET_OS_start_process (
- GNUNET_OS_INHERIT_STD_NONE,
+ GNUNET_OS_INHERIT_STD_ERR,
NULL, NULL, NULL,
"taler-bank-manage-testing",
"taler-bank-manage-testing",
@@ -524,9 +524,11 @@ TALER_TESTING_prepare_bank (const char *config_filename,
/* DB preparation */
if (GNUNET_YES == reset_db)
{
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "Flushing bank database\n");
if (NULL ==
(dbreset_proc = GNUNET_OS_start_process (
- GNUNET_OS_INHERIT_STD_NONE,
+ GNUNET_OS_INHERIT_STD_ERR,
NULL, NULL, NULL,
"taler-bank-manage",
"taler-bank-manage",
@@ -542,7 +544,6 @@ TALER_TESTING_prepare_bank (const char *config_filename,
GNUNET_CONFIGURATION_destroy (cfg);
return GNUNET_SYSERR;
}
- GNUNET_free (database);
if (GNUNET_SYSERR ==
GNUNET_OS_process_wait_status (dbreset_proc,
@@ -552,17 +553,21 @@ TALER_TESTING_prepare_bank (const char *config_filename,
GNUNET_OS_process_destroy (dbreset_proc);
GNUNET_break (0);
GNUNET_CONFIGURATION_destroy (cfg);
+ GNUNET_free (database);
return GNUNET_SYSERR;
}
if ( (type == GNUNET_OS_PROCESS_EXITED) &&
(0 != code) )
{
fprintf (stderr,
- "Failed to setup database\n");
+ "Failed to setup database `%s'\n",
+ database);
GNUNET_break (0);
GNUNET_CONFIGURATION_destroy (cfg);
+ GNUNET_free (database);
return GNUNET_SYSERR;
}
+ GNUNET_free (database);
if ( (type != GNUNET_OS_PROCESS_EXITED) ||
(0 != code) )
{
@@ -591,11 +596,14 @@ TALER_TESTING_prepare_bank (const char *config_filename,
"Using pybank %s on port %u\n",
bc->exchange_auth.wire_gateway_url,
(unsigned int) port);
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "exchange payto: %s\n",
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "exchange payto: %s\n",
bc->exchange_payto);
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "user42_payto: %s\n",
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "user42_payto: %s\n",
bc->user42_payto);
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "user42_payto: %s\n",
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "user43_payto: %s\n",
bc->user43_payto);
return GNUNET_OK;
}