Skip to content

Commit

Permalink
Merge prioridata-master
Browse files Browse the repository at this point in the history
  • Loading branch information
sqrrrl committed Dec 15, 2014
2 parents 9b0e8d3 + 74134bf commit 91ae01a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 14 deletions.
7 changes: 7 additions & 0 deletions lib/google/api_client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ class APIClient
# @option options [String] :ca_file
# Optional set of root certificates to use when validating SSL connections.
# By default, a bundled set of trusted roots will be used.
# @options options[Hash] :faraday_options
# Pass through of options to set on the Faraday connection
def initialize(options={})
logger.debug { "#{self.class} - Initializing client with options #{options}" }

Expand Down Expand Up @@ -123,6 +125,11 @@ def initialize(options={})
faraday.ssl.verify = true
faraday.proxy proxy
faraday.adapter Faraday.default_adapter
if options[:faraday_option].is_a?(Hash)
options[:faraday_option].each_pair do |option, value|
faraday.options.send("#{option}=", value)
end
end
end
return self
end
Expand Down
33 changes: 19 additions & 14 deletions spec/google/api_client_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

shared_examples_for 'configurable user agent' do
include ConnectionHelpers

it 'should allow the user agent to be modified' do
client.user_agent = 'Custom User Agent/1.2.3'
expect(client.user_agent).to eq('Custom User Agent/1.2.3')
Expand Down Expand Up @@ -59,6 +59,11 @@

let(:client) { Google::APIClient.new(:application_name => 'API Client Tests') }

it "should pass the faraday options provided on initialization to FaraDay configuration block" do
client = Google::APIClient.new(faraday_option: {timeout: 999})
expect(client.connection.options.timeout).to be == 999
end

it 'should make its version number available' do
expect(Google::APIClient::VERSION::STRING).to be_instance_of(String)
end
Expand All @@ -73,7 +78,7 @@
end
it_should_behave_like 'configurable user agent'
end

describe 'configured for OAuth 1' do
before do
client.authorization = :oauth_1
Expand Down Expand Up @@ -107,7 +112,7 @@
# TODO
it_should_behave_like 'configurable user agent'
end

describe 'when executing requests' do
before do
@prediction = client.discovered_api('prediction', 'v1.2')
Expand All @@ -123,10 +128,10 @@
after do
@connection.verify
end

it 'should use default authorization' do
client.authorization.access_token = "12345"
client.execute(
client.execute(
:api_method => @prediction.training.insert,
:parameters => {'data' => '12345'},
:connection => @connection
Expand All @@ -136,14 +141,14 @@
it 'should use request scoped authorization when provided' do
client.authorization.access_token = "abcdef"
new_auth = Signet::OAuth2::Client.new(:access_token => '12345')
client.execute(
client.execute(
:api_method => @prediction.training.insert,
:parameters => {'data' => '12345'},
:authorization => new_auth,
:connection => @connection
)
end

it 'should accept options with batch/request style execute' do
client.authorization.access_token = "abcdef"
new_auth = Signet::OAuth2::Client.new(:access_token => '12345')
Expand All @@ -157,17 +162,17 @@
:connection => @connection
)
end


it 'should accept options in array style execute' do
client.authorization.access_token = "abcdef"
new_auth = Signet::OAuth2::Client.new(:access_token => '12345')
client.execute(
client.execute(
@prediction.training.insert, {'data' => '12345'}, '', {},
{ :authorization => new_auth, :connection => @connection }
{ :authorization => new_auth, :connection => @connection }
)
end
end
end

describe 'when retries enabled' do
before do
Expand All @@ -177,7 +182,7 @@
after do
@connection.verify
end

it 'should follow redirects' do
client.authorization = nil
@connection = stub_connection do |stub|
Expand Down Expand Up @@ -284,5 +289,5 @@
expect(count).to eq(3)
end

end
end
end

0 comments on commit 91ae01a

Please sign in to comment.