spec/td/client/bulk_load_spec.rb in td-client-0.8.69 vs spec/td/client/bulk_load_spec.rb in td-client-0.8.70
- old
+ new
@@ -112,47 +112,79 @@
it 'returns guessed json' do
stub_api_request(:post, '/v3/bulk_loads/guess').
with(:body => original_config.to_json).
to_return(:body => guessed_config.to_json)
api.bulk_load_guess(
- TreasureData::API::BulkLoad::BulkLoad.from_hash(original_config)
- ).to_h.should == guessed_config
+ original_config
+ ).should == guessed_config
end
it 'raises an error' do
stub_api_request(:post, '/v3/bulk_loads/guess').
with(:body => original_config.to_json).
to_return(:status => 500, :body => guessed_config.to_json)
expect {
api.bulk_load_guess(
- TreasureData::API::BulkLoad::BulkLoad.from_hash(original_config)
+ original_config
)
}.to raise_error(TreasureData::APIError)
end
- it 'raises on validation error' do
- config = TreasureData::API::BulkLoad::BulkLoad.from_hash({})
- expect {
- api.bulk_load_guess(config)
- }.to raise_error(ArgumentError)
+ it 'perform redo on 500 error' do
+ stub_api_request(:post, '/v3/bulk_loads/guess').
+ with(:body => original_config.to_json).
+ to_return(:status => 500, :body => guessed_config.to_json)
+ begin
+ retry_api.bulk_load_guess(
+ original_config
+ ).should != nil
+ rescue TreasureData::APIError => e
+ e.message.should =~ /^500: BulkLoad configuration guess failed/
+ end
end
- it 'raises on nested validation error' do
- config = TreasureData::API::BulkLoad::BulkLoad.from_hash(original_config)
- config.config.type = nil
+ it 'perform retries on connection failure' do
+ api = retry_api
+ api.instance_eval { @api }.stub(:post).and_raise(SocketError.new('>>'))
+ begin
+ retry_api.bulk_load_guess(
+ original_config
+ )
+ rescue SocketError => e
+ e.message.should == '>> (Retried 1 times in 1 seconds)'
+ end
+ end
+ end
+
+ describe 'guess with old format' do
+ it 'returns guessed json' do
+ stub_api_request(:post, '/v3/bulk_loads/guess').
+ with(:body => original_config.to_json).
+ to_return(:body => guessed_config.to_json)
+ api.bulk_load_guess(
+ original_config
+ ).should == guessed_config
+ end
+
+ it 'raises an error' do
+ stub_api_request(:post, '/v3/bulk_loads/guess').
+ with(:body => original_config.to_json).
+ to_return(:status => 500, :body => guessed_config.to_json)
expect {
- api.bulk_load_guess(config)
- }.to raise_error(ArgumentError)
+ api.bulk_load_guess(
+ original_config
+ )
+ }.to raise_error(TreasureData::APIError)
end
it 'perform redo on 500 error' do
stub_api_request(:post, '/v3/bulk_loads/guess').
with(:body => original_config.to_json).
to_return(:status => 500, :body => guessed_config.to_json)
begin
retry_api.bulk_load_guess(
- TreasureData::API::BulkLoad::BulkLoad.from_hash(original_config)
+ original_config
).should != nil
rescue TreasureData::APIError => e
e.message.should =~ /^500: BulkLoad configuration guess failed/
end
end
@@ -160,11 +192,11 @@
it 'perform retries on connection failure' do
api = retry_api
api.instance_eval { @api }.stub(:post).and_raise(SocketError.new('>>'))
begin
retry_api.bulk_load_guess(
- TreasureData::API::BulkLoad::BulkLoad.from_hash(original_config)
+ original_config
)
rescue SocketError => e
e.message.should == '>> (Retried 1 times in 1 seconds)'
end
end
@@ -174,31 +206,24 @@
it 'returns preview json' do
stub_api_request(:post, '/v3/bulk_loads/preview').
with(:body => guessed_config.to_json).
to_return(:body => preview_result.to_json)
api.bulk_load_preview(
- TreasureData::API::BulkLoad::BulkLoad.from_hash(guessed_config)
- ).to_h.should == preview_result
+ guessed_config
+ ).should == preview_result
end
it 'raises an error' do
stub_api_request(:post, '/v3/bulk_loads/preview').
with(:body => guessed_config.to_json).
to_return(:status => 500, :body => preview_result.to_json)
expect {
api.bulk_load_preview(
- TreasureData::API::BulkLoad::BulkLoad.from_hash(guessed_config)
+ guessed_config
)
}.to raise_error(TreasureData::APIError)
end
-
- it 'raises on validation error' do
- config = TreasureData::API::BulkLoad::BulkLoad.from_hash({})
- expect {
- api.bulk_load_preview(config)
- }.to raise_error(ArgumentError)
- end
end
describe 'issue' do
it 'returns job id' do
expected_request = guessed_config.dup
@@ -208,29 +233,22 @@
with(:body => expected_request.to_json).
to_return(:body => {'job_id' => 12345}.to_json)
api.bulk_load_issue(
'database',
'table',
- TreasureData::API::BulkLoad::BulkLoad.from_hash(guessed_config)
+ guessed_config
).should == '12345'
end
-
- it 'raises on validation error' do
- config = TreasureData::API::BulkLoad::BulkLoad.from_hash({})
- expect {
- api.bulk_load_issue(config)
- }.to raise_error(ArgumentError)
- end
end
describe 'list' do
it 'returns BulkLoadSession' do
stub_api_request(:get, '/v3/bulk_loads').
to_return(:body => [bulk_load_session, bulk_load_session].to_json)
result = api.bulk_load_list
result.size.should == 2
- result.first.to_h.should == bulk_load_session
+ result.first.should == bulk_load_session
end
it 'returns empty' do
stub_api_request(:get, '/v3/bulk_loads').
to_return(:body => [].to_json)
@@ -252,17 +270,17 @@
to_return(:body => bulk_load_session.to_json)
api.bulk_load_create(
'nahi_test_1',
'database',
'table',
- TreasureData::API::BulkLoad::BulkLoad.from_hash(guessed_config),
+ guessed_config,
{
cron: '@daily',
timezone: 'Asia/Tokyo',
delay: 3600
}
- ).to_h.should == bulk_load_session
+ ).should == bulk_load_session
end
it 'accepts empty option' do
expected_request = guessed_config.dup
expected_request['name'] = 'nahi_test_1'
@@ -273,12 +291,12 @@
to_return(:body => bulk_load_session.to_json)
api.bulk_load_create(
'nahi_test_1',
'database',
'table',
- TreasureData::API::BulkLoad::BulkLoad.from_hash(guessed_config)
- ).to_h.should == bulk_load_session
+ guessed_config
+ ).should == bulk_load_session
end
it 'accepts time_column option' do
expected_request = guessed_config.dup
expected_request['name'] = 'nahi_test_1'
@@ -290,52 +308,52 @@
to_return(:body => bulk_load_session.to_json)
api.bulk_load_create(
'nahi_test_1',
'database',
'table',
- TreasureData::API::BulkLoad::BulkLoad.from_hash(guessed_config),
+ guessed_config,
{
time_column: 'c0'
}
- ).to_h.should == bulk_load_session
+ ).should == bulk_load_session
end
end
describe 'show' do
it 'returns bulk_load_session' do
stub_api_request(:get, '/v3/bulk_loads/nahi_test_1').
to_return(:body => bulk_load_session.to_json)
- api.bulk_load_show('nahi_test_1').to_h.should == bulk_load_session
+ api.bulk_load_show('nahi_test_1').should == bulk_load_session
end
end
describe 'update' do
it 'returns updated bulk_load_session' do
stub_api_request(:put, '/v3/bulk_loads/nahi_test_1').
with(:body => bulk_load_session.to_json).
to_return(:body => bulk_load_session.to_json)
api.bulk_load_update(
'nahi_test_1',
- TreasureData::API::BulkLoad::BulkLoad.from_hash(bulk_load_session)
- ).to_h.should == bulk_load_session
+ bulk_load_session
+ ).should == bulk_load_session
end
end
describe 'delete' do
it 'returns updated bulk_load_session' do
stub_api_request(:delete, '/v3/bulk_loads/nahi_test_1').
to_return(:body => bulk_load_session.to_json)
- api.bulk_load_delete('nahi_test_1').to_h.should == bulk_load_session
+ api.bulk_load_delete('nahi_test_1').should == bulk_load_session
end
end
describe 'history' do
it 'returns list of jobs' do
stub_api_request(:get, '/v3/bulk_loads/nahi_test_1/jobs').
to_return(:body => [bulk_load_job, bulk_load_job].to_json)
result = api.bulk_load_history('nahi_test_1')
result.size.should == 2
- result.first.to_h.should == bulk_load_job
+ result.first.should == bulk_load_job
end
end
describe 'run' do
it 'returns job_id' do