spec/kpm/remote/base_artifact_spec.rb in kpm-0.7.1 vs spec/kpm/remote/base_artifact_spec.rb in kpm-0.7.2

- old
+ new

@@ -23,10 +23,27 @@ # Verify the download happens when we set force_download test_download dir, nil, false, true end end + it 'should be able to handle download errors' do + nexus_down = {:url => 'https://does.not.exist'} + Dir.mktmpdir do |dir| + sha1_file = "#{dir}/sha1.yml" + test_download dir, 'foo-oss.pom.xml', false, false, sha1_file + # Verify we skip the second time + test_download dir, 'foo-oss.pom.xml', true, false, sha1_file + # Verify the download is skipped gracefully when Nexus isn't reachable + test_download dir, 'foo-oss.pom.xml', true, false, sha1_file, nexus_down + # Verify the download fails when Nexus isn't reachable and force_download is set + expect { test_download dir, 'foo-oss.pom.xml', nil, true, sha1_file, nexus_down }.to raise_error(SocketError) + # Verify the download fails when Nexus isn't reachable and the Nexus cache is empty + KPM::Sha1Checker.from_file(sha1_file).cache_artifact_info('org.kill-bill.billing:killbill-oss-parent:pom:LATEST', nil) + expect { test_download dir, 'foo-oss.pom.xml', nil, false, sha1_file, nexus_down }.to raise_error(SocketError) + end + end + it 'should be able to download and verify generic .tar.gz artifacts' do # The artifact is not small unfortunately (23.7M) group_id = 'org.kill-bill.billing' artifact_id = 'killbill-osgi-bundles-defaultbundles' packaging = 'tar.gz' @@ -64,14 +81,13 @@ File.file?(second_take[:file_path] + '/killbill-platform-osgi-bundles-jruby-0.36.10.jar').should be_true end end - - def test_download(dir, filename=nil, verify_is_skipped=false, force_download=false) + def test_download(dir, filename=nil, verify_is_skipped=false, force_download=false, sha1_file=nil, overrides={}) path = filename.nil? ? dir : dir + '/' + filename - info = KPM::BaseArtifact.pull(@logger, 'org.kill-bill.billing', 'killbill-oss-parent', 'pom', nil, 'LATEST', path, nil, force_download, true, {}, true) + info = KPM::BaseArtifact.pull(@logger, 'org.kill-bill.billing', 'killbill-oss-parent', 'pom', nil, 'LATEST', path, sha1_file, force_download, true, overrides, true) info[:file_name].should == (filename.nil? ? "killbill-oss-parent-#{info[:version]}.pom" : filename) info[:skipped].should == verify_is_skipped if !info[:skipped] info[:size].should == File.size(info[:file_path]) end