From: Moritz Bunkus Date: Fri, 10 Feb 2017 12:26:07 +0000 (+0100) Subject: Tests: Datenbank-Meldungen immer in English zurückgeben X-Git-Tag: release-3.5.4~1509 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=e38b0b21c1e924cb0b1a21f6e2fe5db7d3258f70;p=kivitendo-erp.git Tests: Datenbank-Meldungen immer in English zurückgeben Die Sprache, in der z.B. Fehlermeldungen von der Datenbank geliefert werden, wird beim Erstellen des PostgreSQL-Clusters festgelegt. Dies ist bei vielen Standardinstallationen Deutsch, da meinst nur »--locale=de_DE.UTF-8« gesagt wird, und damit auch LC_MESSAGES gesetzt wird. Für Tests ist das ungünstig, weil sich diese darauf verlassen können müssen, dass die Fehlermeldungen immer in einer bestimmten Sprache sind. Unsere Tests vergleichen Fehlermeldungen mit den erwarteten Mustern, und diese sind in Englisch. Daher die Nachrichten-Locale Datenbankverbindungen von sowohl Auth- als auch Hauptdatenbank am Anfang der Tests auf Englisch setzen. --- diff --git a/t/Support/TestSetup.pm b/t/Support/TestSetup.pm index 037cfb547..d74e66a7b 100644 --- a/t/Support/TestSetup.pm +++ b/t/Support/TestSetup.pm @@ -48,6 +48,12 @@ sub login { $SIG{__DIE__} = sub { Carp::confess( @_ ) } if $::lx_office_conf{debug}->{backtrace_on_die}; + # Always use English locale for messages from the database during + # tests. + my $query = qq|SET lc_messages = 'en_US.UTF-8'|; + SL::DB->auth->dbh->do($query) || die 'Cannot set database locale to en_US.UTF-8 for auth database'; + SL::DB->client->dbh->do($query) || die 'Cannot set database locale to en_US.UTF-8 for main database'; + return 1; }