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