Revision e38b0b21
Von Moritz Bunkus vor fast 8 Jahren hinzugefügt
t/Support/TestSetup.pm | ||
---|---|---|
48 | 48 |
|
49 | 49 |
$SIG{__DIE__} = sub { Carp::confess( @_ ) } if $::lx_office_conf{debug}->{backtrace_on_die}; |
50 | 50 |
|
51 |
# Always use English locale for messages from the database during |
|
52 |
# tests. |
|
53 |
my $query = qq|SET lc_messages = 'en_US.UTF-8'|; |
|
54 |
SL::DB->auth->dbh->do($query) || die 'Cannot set database locale to en_US.UTF-8 for auth database'; |
|
55 |
SL::DB->client->dbh->do($query) || die 'Cannot set database locale to en_US.UTF-8 for main database'; |
|
56 |
|
|
51 | 57 |
return 1; |
52 | 58 |
} |
53 | 59 |
|
Auch abrufbar als: Unified diff
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.