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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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