dpl 1.5.9.travis.394.1 → 1.5.9.travis.397.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTBmZTUzNDVmYmEyYjA3ZWQ2NzhmODg2NDg5MzdhY2Q1ZTdjY2M4Ng==
4
+ MDc5NTZmYjA5ODkxOGM5YzlhNjQzYjZmZmRmYzBjNWJmY2FlZTYxMg==
5
5
  data.tar.gz: !binary |-
6
- YjJiMzljNTU5YzhjODdkZGVjNDFiYjE0OTUwNTYwNWUxMGRmNGQ3YQ==
6
+ MDQzYjA1ZmU2NzZmYWVmY2RiYzFhOTFjMmIxNDlhMzZkNjI4MzhiMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YTJjODU5MzE4NDljYjBkNDI4YjQzMjc1NGFhYzEwYWZkY2U3N2E4NmJiNWIx
10
- ODdlNWUwZGQ4YTZhNWFlOTM0OTliOWQzNjQ1ZjE4MzM2OTZhMGI0OTQwMmMz
11
- ZWUyZDdhNDRiMGRiYjE2MjQzMTg4ZTE5ODY4MDI5ZThmYjVkYzM=
9
+ ODNkYTJmYTVjNWQ0OWVkMDg1MTBjOGU2MmMxZTg3MGFlNDQ1NTRlYTBlNmFi
10
+ NzZiOThlOWNkNzJhYjQxN2U3MDUyYTJiYjE3OTU1MDllZjI3MDUzZTdjNTAw
11
+ MThiY2Q3OGM0N2U2NmZmZjY5Y2U0NDhmM2VmYjgwNzhmZmUwNzQ=
12
12
  data.tar.gz: !binary |-
13
- MTM2NjY3ZWI3ZDQ4NzNjYTQ0ODM1MWEyMmIwZTNhNjE0ZWUxOTJkNzAyNGVk
14
- NTNhNWI2ZTkwYTVmMDU2NmM5MTYwN2Q2YmYzZTVmOGE5ZDg3ZjVjM2JmNjVk
15
- OWVmMWRmMTNiY2U3YzgyZjVjODkzYzBlNTI2OWE5ZmNjODM2ZTA=
13
+ ZDhjODhjYThlZDY0MTQzMzZhYTU3ZWNmMTZkM2FjZjc5MDk3Y2QzYTYwZTUw
14
+ YTAzYTYxNDllMWE3NzE1YTY2NGRlNDViNzUyOWU3ZjRjNWZjZTZmYTZjZmYx
15
+ ZDA0N2JjZDIzNDliNmY3ZjUyZTZlMDRhNzgxZDdhYWYwODhlNTY=
@@ -45,6 +45,11 @@ module DPL
45
45
 
46
46
  def check_auth
47
47
  setup_auth
48
+
49
+ unless api.scopes.include? 'public_repo' or api.scopes.include? 'repo'
50
+ raise Error, "Dpl does not have permission to upload assets. Make sure your token contains the repo or public_repo scope."
51
+ end
52
+
48
53
  log "Logged in as #{user.name}"
49
54
  end
50
55
 
@@ -65,7 +70,18 @@ module DPL
65
70
  end
66
71
 
67
72
  Array(options[:file]).each do |file|
68
- api.upload_asset(release_url, Pathname.new(file).basename.to_s, {:content_type => MIME::Types.type_for(file).first.to_s})
73
+ already_exists = false
74
+ filename = Pathname.new(file).basename.to_s
75
+ api.release(release_url).rels[:assets].get.data.each do |existing_file|
76
+ if existing_file.name == filename
77
+ already_exists = true
78
+ end
79
+ end
80
+ if already_exists
81
+ log "#{filename} already exists, skipping."
82
+ else
83
+ api.upload_asset(release_url, filename, {:content_type => MIME::Types.type_for(file).first.to_s})
84
+ end
69
85
  end
70
86
  end
71
87
  end
@@ -47,18 +47,27 @@ describe DPL::Provider::Releases do
47
47
  end
48
48
 
49
49
  describe :check_auth do
50
- example do
50
+ example "With proper permissions" do
51
51
  allow_message_expectations_on_nil
52
52
  provider.stub(:user)
53
53
  provider.stub(:setup_auth)
54
+ provider.api.should_receive(:scopes).and_return(["public_repo"])
54
55
  provider.user.should_receive(:name).and_return("foo")
55
56
  provider.should_receive(:log).with("Logged in as foo")
56
57
  provider.check_auth
57
58
  end
59
+
60
+ example "With improper permissions" do
61
+ allow_message_expectations_on_nil
62
+ provider.stub(:user)
63
+ provider.stub(:setup_auth)
64
+ provider.api.should_receive(:scopes).exactly(2).times.and_return([])
65
+ expect { provider.check_auth }.to raise_error(DPL::Error)
66
+ end
58
67
  end
59
68
 
60
69
  describe :push_app do
61
- example "When Release Exists" do
70
+ example "When Release Exists but has no Files" do
62
71
  allow_message_expectations_on_nil
63
72
 
64
73
  provider.options.update(:file => ["test/foo.bar", "bar.foo"])
@@ -67,17 +76,47 @@ describe DPL::Provider::Releases do
67
76
  provider.stub(:get_tag).and_return("v0.0.0")
68
77
 
69
78
  provider.releases.map do |release|
70
- release.stub(:tag_name).and_return("v0.0.0")
71
- release.stub(:rels).and_return({:self => nil})
72
- release.rels[:self].stub(:href)
79
+ release.stub(:tag_name).and_return("v0.0.0")
80
+ release.stub(:rels).and_return({:self => nil})
81
+ release.rels[:self].stub(:href)
73
82
  end
74
83
 
84
+ provider.api.stub(:release)
85
+ provider.api.release.stub(:rels).and_return({:assets => nil})
86
+ provider.api.release.rels[:assets].stub(:get).and_return({:data => [""]})
87
+ provider.api.release.rels[:assets].get.stub(:data).and_return([])
88
+
75
89
  provider.api.should_receive(:upload_asset).with(anything, "foo.bar", anything)
76
90
  provider.api.should_receive(:upload_asset).with(anything, "bar.foo", anything)
77
91
 
78
92
  provider.push_app
79
93
  end
80
94
 
95
+ example "When Release Exists and has Files" do
96
+ allow_message_expectations_on_nil
97
+
98
+ provider.options.update(:file => ["test/foo.bar", "bar.foo"])
99
+
100
+ provider.stub(:releases).and_return([""])
101
+ provider.stub(:get_tag).and_return("v0.0.0")
102
+
103
+ provider.releases.map do |release|
104
+ release.stub(:tag_name).and_return("v0.0.0")
105
+ release.stub(:rels).and_return({:self => nil})
106
+ release.rels[:self].stub(:href)
107
+ end
108
+
109
+ provider.api.stub(:release)
110
+ provider.api.release.stub(:rels).and_return({:assets => nil})
111
+ provider.api.release.rels[:assets].stub(:get).and_return({:data => [""]})
112
+ provider.api.release.rels[:assets].get.stub(:data).and_return([double(:name => "foo.bar"), double(:name => "foo.foo")])
113
+
114
+ provider.api.should_receive(:upload_asset).with(anything, "bar.foo", anything)
115
+ provider.should_receive(:log).with("foo.bar already exists, skipping.")
116
+
117
+ provider.push_app
118
+ end
119
+
81
120
  example "When Release Doesn't Exist" do
82
121
  allow_message_expectations_on_nil
83
122
 
@@ -95,6 +134,11 @@ describe DPL::Provider::Releases do
95
134
  provider.api.create_release.stub(:rels).and_return({:self => nil})
96
135
  provider.api.create_release.rels[:slef].stub(:href)
97
136
 
137
+ provider.api.stub(:release)
138
+ provider.api.release.stub(:rels).and_return({:assets => nil})
139
+ provider.api.release.rels[:assets].stub(:get).and_return({:data => nil})
140
+ provider.api.release.rels[:assets].get.stub(:data).and_return([])
141
+
98
142
  provider.api.should_receive(:upload_asset).with(anything, "foo.bar", anything)
99
143
  provider.api.should_receive(:upload_asset).with(anything, "bar.foo", anything)
100
144
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.9.travis.394.1
4
+ version: 1.5.9.travis.397.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-04 00:00:00.000000000 Z
11
+ date: 2014-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec