From 5e26583b1c64dabc4181938a6826088ef2f1ddef Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Tue, 8 Feb 2022 12:44:52 -0300 Subject: [PATCH] 17492: Adds test confirming that req-id is added on exceptions. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- sdk/ruby/Gemfile | 1 + sdk/ruby/lib/arvados.rb | 2 +- sdk/ruby/test/test_request_id.rb | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 sdk/ruby/test/test_request_id.rb diff --git a/sdk/ruby/Gemfile b/sdk/ruby/Gemfile index 3e300b3e57..1972df614e 100644 --- a/sdk/ruby/Gemfile +++ b/sdk/ruby/Gemfile @@ -6,4 +6,5 @@ source 'https://rubygems.org' gemspec gem 'rake' gem 'minitest', '>= 5.0.0' +gem 'mocha', require: false gem 'signet', '<= 0.11' diff --git a/sdk/ruby/lib/arvados.rb b/sdk/ruby/lib/arvados.rb index 023a1f829c..a72a9f8241 100644 --- a/sdk/ruby/lib/arvados.rb +++ b/sdk/ruby/lib/arvados.rb @@ -29,7 +29,7 @@ class Arvados super(*args) rescue => e if !e.message.match(/.*req-[0-9a-zA-Z]{20}.*/) - e.message += "\nRequest ID: #{e.headers['X-Request-Id'] or @request_id}" + raise $!, "#{$!} (Request ID: #{@request_id})", $!.backtrace end raise e end diff --git a/sdk/ruby/test/test_request_id.rb b/sdk/ruby/test/test_request_id.rb new file mode 100644 index 0000000000..2e25210ba7 --- /dev/null +++ b/sdk/ruby/test/test_request_id.rb @@ -0,0 +1,22 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 + +require "arvados" +require "mocha/minitest" + +class FakeError < StandardError; end +class RequestIdTest < Minitest::Test + def test_raise_exception_with_request_id + arv = Arvados.new + clnt = arv.client + assert_nil clnt.request_id + + Google::APIClient.any_instance.stubs(:execute).raises(FakeError.new("Uh-oh...")) + err = assert_raises(FakeError) do + arv.collection.get(uuid: "zzzzz-4zz18-zzzzzzzzzzzzzzz") + end + assert clnt.request_id != nil + assert_match /Uh-oh.*\(Request ID: req-[0-9a-zA-Z]{20}\)/, err.message + end +end \ No newline at end of file -- 2.30.2