[FEAT] Mark database errors in tests as failure

- If the database returns a error in integration tests, it should be
marked as a failure of the test.
- Ref: https://codeberg.org/forgejo/forgejo/issues/2962 (this should
help with logging the SQL that is resulting in the error).
This commit is contained in:
Gusted 2024-04-02 13:34:17 +02:00 committed by GitHub
parent 5a23ce083d
commit 11feddc21d
2 changed files with 10 additions and 1 deletions

View file

@ -155,8 +155,14 @@ func InitEngine(ctx context.Context) error {
Logger: log.GetLogger("xorm"), Logger: log.GetLogger("xorm"),
}) })
} }
errorLogger := log.GetLogger("xorm")
if setting.IsInTesting {
errorLogger = log.GetLogger(log.DEFAULT)
}
xormEngine.AddHook(&ErrorQueryHook{ xormEngine.AddHook(&ErrorQueryHook{
Logger: log.GetLogger("xorm"), Logger: errorLogger,
}) })
SetDefaultEngine(ctx, xormEngine) SetDefaultEngine(ctx, xormEngine)

View file

@ -393,6 +393,9 @@ var ignoredErrorMessage = []string{
// TestRenameInvalidUsername // TestRenameInvalidUsername
`TrString() [E] Missing translation "form.Name"`, `TrString() [E] Missing translation "form.Name"`,
// TestDatabaseCollation
`[E] [Error SQL Query] INSERT INTO test_collation_tbl (txt) VALUES ('main') []`,
} }
func (w *testLoggerWriterCloser) recordError(msg string) { func (w *testLoggerWriterCloser) recordError(msg string) {