From 583b1b84293635633199123ff759849fbd09f7f2 Mon Sep 17 00:00:00 2001 From: Mura Li Date: Sun, 21 Oct 2018 04:48:33 +0800 Subject: [PATCH] Retry test-fixtures loading in case of transaction rollback (#5125) --- models/test_fixtures.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/models/test_fixtures.go b/models/test_fixtures.go index d7f59ec3b5..2a70bc9816 100644 --- a/models/test_fixtures.go +++ b/models/test_fixtures.go @@ -19,5 +19,14 @@ func InitFixtures(helper testfixtures.Helper, dir string) (err error) { // LoadFixtures load fixtures for a test database func LoadFixtures() error { - return fixtures.Load() + var err error + // Database transaction conflicts could occur and result in ROLLBACK + // As a simple workaround, we just retry 5 times. + for i := 0; i < 5; i++ { + err = fixtures.Load() + if err == nil { + break + } + } + return err }