Skip to content

Commit 97ccaef

Browse files
maxnussbaumGERMAN ATTANASIO RUIZ
authored andcommitted
test(iam): Add more code coverage for iam authentication
1 parent 07e1899 commit 97ccaef

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

lib/watson_apis/iam_token_manager.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def request(method:, url:, headers: nil, params: nil, data: nil)
6565
# If this class is managing tokens and has a valid token stored, send it
6666
def _token
6767
return @user_access_token unless @user_access_token.nil? || (@user_access_token.respond_to?(:empty?) && @user_access_token.empty?)
68-
if @token_info.nil?
68+
if @token_info.all? { |_k, v| v.nil? }
6969
token_info = _request_token
7070
_save_token_info(
7171
token_info: token_info

lib/watson_apis/watson_service.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def _token_manager(iam_api_key: nil, iam_access_token: nil, iam_url: nil)
104104
end
105105

106106
def _iam_access_token(iam_access_token:)
107-
@token_manager._access_token(iam_access_token) unless @token_manager.nil?
107+
@token_manager._access_token(iam_access_token: iam_access_token) unless @token_manager.nil?
108108
@token_manager = IAMTokenManager.new(iam_access_token: iam_access_token) if @token_manager.nil?
109109
@iam_access_token = iam_access_token
110110
end
@@ -120,9 +120,7 @@ def request(args)
120120
defaults = { method: nil, url: nil, accept_json: false, headers: nil, params: nil, json: {}, data: nil }
121121
args = defaults.merge(args)
122122
args[:data].delete_if { |_k, v| v.nil? } if args[:data].instance_of?(Hash)
123-
if args[:data].respond_to?(:merge)
124-
args[:json] = args[:data].merge(args[:json]) unless args[:data].instance_of?(String)
125-
end
123+
args[:json] = args[:data].merge(args[:json]) if args[:data].respond_to?(:merge)
126124
args[:json] = args[:data] if args[:json].empty? || (args[:data].instance_of?(String) && !args[:data].empty?)
127125
args[:json].delete_if { |_k, v| v.nil? } if args[:json].instance_of?(Hash)
128126
args[:headers]["Accept"] = "application/json" if args[:accept_json]

test/integration/test_iam_assistant_v1.rb

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ class IAMAssistantV1Test < Minitest::Test
77
Minitest::Test.parallelize_me!
88
def test_create_update_delete_workspace
99
service = WatsonAPIs::AssistantV1.new(
10-
iam_api_key: ENV["ASSISTANT_IAM_APIKEY"],
1110
url: ENV["ASSISTANT_IAM_URL"],
1211
version: "2018-02-16"
1312
)
13+
service._iam_api_key(iam_api_key: ENV["ASSISTANT_IAM_APIKEY"])
14+
service._iam_api_key(iam_api_key: ENV["ASSISTANT_IAM_APIKEY"])
1415
service.add_default_headers(
1516
headers: {
1617
"X-Watson-Learning-Opt-Out" => "1",
@@ -682,4 +683,26 @@ def test_get_workspace_with_iam_user_pass_non_params
682683
)
683684
assert((200..299).cover?(service_response.status))
684685
end
686+
687+
def test_receive_error
688+
service = WatsonAPIs::AssistantV1.new(
689+
url: ENV["ASSISTANT_IAM_URL"],
690+
version: "2018-02-16"
691+
)
692+
service.add_default_headers(
693+
headers: {
694+
"X-Watson-Learning-Opt-Out" => "1",
695+
"X-Watson-Test" => "1"
696+
}
697+
)
698+
error_received = false
699+
begin
700+
service._iam_api_key(iam_api_key: "bogus_api_key")
701+
service.list_workspaces
702+
rescue WatsonApiException => e
703+
assert_equal("Provided API key could not be found", e.info["errorMessage"])
704+
error_received = true
705+
end
706+
assert(error_received)
707+
end
685708
end

0 commit comments

Comments
 (0)