diff --git a/lib/fog/core/credentials.rb b/lib/fog/core/credentials.rb index 8ccb23656..d781bbf58 100644 --- a/lib/fog/core/credentials.rb +++ b/lib/fog/core/credentials.rb @@ -21,6 +21,8 @@ module Fog @credential_path ||= begin path = ENV["FOG_RC"] || (ENV['HOME'] && File.directory?(ENV['HOME']) && '~/.fog') File.expand_path(path) if path + rescue + nil end end diff --git a/tests/core/credential_tests.rb b/tests/core/credential_tests.rb index 4780c3357..db30e1b1b 100644 --- a/tests/core/credential_tests.rb +++ b/tests/core/credential_tests.rb @@ -32,6 +32,12 @@ Shindo.tests do Fog.credentials_path } + returns(nil, 'File.expand_path raises because of non-absolute path') { + ENV.delete('FOG_RC') + ENV['HOME'] = '.' + Fog.credentials_path + } + returns(nil, 'returns nil when neither FOG_RC or HOME are set') { ENV.delete('HOME') ENV.delete('FOG_RC')