From e38b0b21c1e924cb0b1a21f6e2fe5db7d3258f70 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 10 Feb 2017 13:26:07 +0100 Subject: [PATCH] =?utf8?q?Tests:=20Datenbank-Meldungen=20immer=20in=20Engl?= =?utf8?q?ish=20zur=C3=BCckgeben?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. --- t/Support/TestSetup.pm | 6 ++++++ 1 file changed, 6 insertions(+) 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; } -- 2.20.1