Skip to content
Snippets Groups Projects
Commit 992aaa55 authored by capotej's avatar capotej
Browse files

move distro_version to put_package and allow strings

parent 6e647d5e
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -115,15 +115,21 @@ module Packagecloud
parsed_json_result(response)
end
 
def put_package(repo, package)
def put_package(repo, package, distro_version_id)
assert_valid_repo_name(repo)
 
url = "/api/v1/repos/#{username}/#{repo}/packages.json"
 
mixed_msg = MIME::Multipart::FormData.new
 
if package.distro_version_id != nil
mixed_msg.add(MIME::Text.new(package.distro_version_id), "package[distro_version_id]")
if distro_version_id != nil
if distro_version_id.is_a? String
distro_version = find_distribution_id(distro_version_id)
raise "Cannot find distribution: #{distro_version_id}" if distro_version.nil?
mixed_msg.add(MIME::Text.new(distro_version), "package[distro_version_id]")
else
mixed_msg.add(MIME::Text.new(distro_version_id), "package[distro_version_id]")
end
end
 
pkg_data = MIME::Application.new(package.file.read)
Loading
Loading
Loading
Loading
@@ -2,7 +2,6 @@ module Packagecloud
class Package
 
attr_reader :file
attr_reader :distro_version_id
attr_accessor :source_files
attr_reader :filename
attr_reader :client
Loading
Loading
@@ -23,7 +22,6 @@ module Packagecloud
 
@file = options[:file]
@filename = options[:filename]
@distro_version_id = options[:distro_version_id]
@source_files = options[:source_files] || {}
@client = options[:client]
end
Loading
Loading
Loading
Loading
@@ -33,11 +33,6 @@ describe Package do
expect(pkg.filename).to eql("chewbacca-1.0.0.gem")
end
 
it "should handle raw distro_version_id" do
pkg = Package.new(:file => "spec/fixtures/chewbacca-1.0.0.gem", :distro_version_id => 22)
expect(pkg.distro_version_id).to eql(22)
end
it "should handle source_files options" do
pkg = Package.new(:file => "spec/fixtures/natty_dsc/jake_1.0-7.dsc", :source_files => {"foo" => "bar"})
expect(pkg.source_files).to eql({"foo" => "bar"})
Loading
Loading
Loading
Loading
@@ -44,9 +44,28 @@ describe Packagecloud do
it "POST debian package /api/v1/repos/joedamato/test_repo/packages.json" do
path = "spec/fixtures/libampsharp2.0-cil_2.0.4-1_all.deb"
size = File.size(path)
package = Package.new(:file => path, :distro_version_id => 22)
package = Package.new(:file => path)
 
result = @client.put_package("test_repo", package)
result = @client.put_package("test_repo", package, 22)
expect(result.succeeded).to be_truthy
#assert content type is set correctly
expect($request.content_type).to include("boundary=")
expect($request.content_type).to include("multipart/form-data")
# assert body is at least bigger than fixture file
expect($request.content_length > size).to be_truthy
end
it "POST debian package /api/v1/repos/joedamato/test_repo/packages.json with string distro_version_id" do
allow(@client).to receive(:find_distribution_id).and_return(3)
path = "spec/fixtures/libampsharp2.0-cil_2.0.4-1_all.deb"
size = File.size(path)
package = Package.new(:file => path)
result = @client.put_package("test_repo", package, "ubuntu/breezy")
expect(@client).to have_received(:find_distribution_id)
expect(result.succeeded).to be_truthy
 
#assert content type is set correctly
Loading
Loading
@@ -70,9 +89,9 @@ describe Packagecloud do
jake_debian_size = File.size(jake_debian)
combined_size = dsc_size + jake_orig_size + jake_debian_size
 
package = Package.new(:file => dsc, :distro_version_id => 22, :source_files => source_packages)
package = Package.new(:file => dsc, :source_files => source_packages)
 
result = @client.put_package("test_repo", package)
result = @client.put_package("test_repo", package, 22)
expect(result.succeeded).to be_truthy
 
#assert content type is set correctly
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment