X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/917c3ca20c36318578c4dfab7de076d97a2f87fe..9446f96840126285dcdda931abbd8a3ca4d9c77f:/apps/workbench/test/test_helper.rb diff --git a/apps/workbench/test/test_helper.rb b/apps/workbench/test/test_helper.rb index 1d26deefa3..2e8ead94cd 100644 --- a/apps/workbench/test/test_helper.rb +++ b/apps/workbench/test/test_helper.rb @@ -158,7 +158,7 @@ class ActiveSupport::TestCase } end def json_response - Oj.load(@response.body) + Oj.safe_load(@response.body) end end @@ -348,3 +348,30 @@ end # Reset fixtures now (i.e., before any tests run). ActiveSupport::TestCase.reset_api_fixtures_now + +module Minitest + class Test + def capture_exceptions *args + begin + n = 0 + begin + yield + rescue *PASSTHROUGH_EXCEPTIONS + raise + rescue Exception => e + n += 1 + raise if n > 2 || e.is_a?(Skip) + STDERR.puts "Test failed, retrying (##{n})" + ActiveSupport::TestCase.reset_api_fixtures_now + retry + end + rescue *PASSTHROUGH_EXCEPTIONS + raise + rescue Assertion => e + self.failures << e + rescue Exception => e + self.failures << UnexpectedError.new(e) + end + end + end +end