dpl 1.8.18.travis.1472.4 → 1.8.21

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.
@@ -1,91 +1,127 @@
1
1
  require 'spec_helper'
2
- require 'aws-sdk-v1'
2
+ require 'aws-sdk'
3
3
  require 'dpl/provider'
4
4
  require 'dpl/provider/ops_works'
5
5
 
6
6
  describe DPL::Provider::OpsWorks do
7
7
 
8
- before (:each) do
9
- AWS.stub!
8
+ subject :provider do
9
+ described_class.new(DummyContext.new, :access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz')
10
10
  end
11
11
 
12
- subject :provider do
13
- described_class.new(DummyContext.new, :access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz', :bucket => 'my-bucket')
12
+ describe '#opsworks_options' do
13
+ context 'without region' do
14
+ example do
15
+ options = provider.opsworks_options
16
+ expect(options[:region]).to eq('us-east-1')
17
+ end
18
+ end
19
+
20
+ context 'with region' do
21
+ example do
22
+ region = 'us-west-1'
23
+ provider.options.update(:region => region)
24
+ options = provider.opsworks_options
25
+ expect(options[:region]).to eq(region)
26
+ end
27
+ end
14
28
  end
15
29
 
16
30
  describe "#check_auth" do
17
31
  example do
18
- expect(provider).to receive(:setup_auth)
19
32
  expect(provider).to receive(:log).with('Logging in with Access Key: ****************jklz')
20
33
  provider.check_auth
21
34
  end
22
35
  end
23
36
 
24
- describe "#setup_auth" do
25
- example do
26
- expect(AWS).to receive(:config).with(:access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz').once.and_call_original
27
- provider.setup_auth
28
- end
29
- end
30
-
31
37
  describe "#needs_key?" do
32
38
  example do
33
39
  expect(provider.needs_key?).to eq(false)
34
40
  end
35
41
  end
36
42
 
37
- describe "#push_app" do
38
- let(:client) { double(:ops_works_client) }
39
- let(:ops_works_app) { {shortname: 'app', stack_id: 'stack-id'} }
40
- before do
41
- expect(provider).to receive(:current_sha).and_return('sha')
42
- expect(provider.api).to receive(:client).and_return(client)
43
- expect(provider.context.env).to receive(:[]).with('TRAVIS_BUILD_NUMBER').and_return('123')
44
- end
43
+ describe DPL::Provider::OpsWorks do
44
+ access_key_id = 'someaccesskey'
45
+ secret_access_key = 'somesecretaccesskey'
46
+ region = 'us-east-1'
45
47
 
46
- let(:custom_json) { "{\"deploy\":{\"app\":{\"migrate\":false,\"scm\":{\"revision\":\"sha\"}}}}" }
47
- example 'without :migrate option' do
48
- provider.options.update(app_id: 'app-id')
49
- expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]}
50
- )
51
- expect(client).to receive(:create_deployment).with(
52
- stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
53
- ).and_return({})
54
- provider.push_app
55
- end
48
+ client_options = {
49
+ stub_responses: true,
50
+ region: region,
51
+ credentials: Aws::Credentials.new(access_key_id, secret_access_key)
52
+ }
56
53
 
57
- let(:custom_json_with_migrate) { "{\"deploy\":{\"app\":{\"migrate\":true,\"scm\":{\"revision\":\"sha\"}}}}" }
58
- example 'with :migrate option' do
59
- provider.options.update(app_id: 'app-id', migrate: true)
60
- expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
61
- expect(client).to receive(:create_deployment).with(
62
- stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json_with_migrate
63
- ).and_return({})
64
- provider.push_app
54
+ subject :provider do
55
+ described_class.new(DummyContext.new, {
56
+ access_key_id: access_key_id,
57
+ secret_access_key: secret_access_key
58
+ })
65
59
  end
66
60
 
67
- example 'with :wait_until_deployed' do
68
- provider.options.update(app_id: 'app-id', wait_until_deployed: true)
69
- expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
70
- expect(client).to receive(:create_deployment).and_return({deployment_id: 'deployment_id'})
71
- expect(client).to receive(:describe_deployments).with({deployment_ids: ['deployment_id']}).and_return({deployments: [status: 'running']}, {deployments: [status: 'successful']})
72
- provider.push_app
61
+ before :each do
62
+ expect(provider).to receive(:opsworks_options).and_return(client_options)
73
63
  end
74
64
 
75
- example 'with :instance-ids' do
76
- provider.options.update(app_id: 'app-id', instance_ids: ['instance-id'])
77
- expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
78
- expect(client).to receive(:create_deployment).with(
79
- stack_id: 'stack-id', app_id: 'app-id', instance_ids:['instance-id'], command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
80
- ).and_return({})
81
- provider.push_app
65
+ describe '#opsworks' do
66
+ example do
67
+ expect(Aws::OpsWorks::Client).to receive(:new).with(client_options).once
68
+ provider.opsworks
69
+ end
82
70
  end
83
- end
84
71
 
85
- describe "#api" do
86
- example do
87
- expect(AWS::OpsWorks).to receive(:new)
88
- provider.api
72
+ describe "#push_app" do
73
+ let(:client) { provider.opsworks }
74
+ let(:ops_works_app) { {shortname: 'app', stack_id: 'stack-id'} }
75
+ before do
76
+ expect(provider).to receive(:current_sha).and_return('sha')
77
+ expect(provider.context.env).to receive(:[]).with('TRAVIS_BUILD_NUMBER').and_return('123')
78
+ end
79
+
80
+ let(:custom_json) { "{\"deploy\":{\"app\":{\"migrate\":false,\"scm\":{\"revision\":\"sha\"}}}}" }
81
+ example 'without :migrate option' do
82
+ provider.options.update(app_id: 'app-id')
83
+ expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
84
+ expect(client).to receive(:create_deployment).with(
85
+ stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
86
+ ).and_return({})
87
+ provider.push_app
88
+ end
89
+
90
+ let(:custom_json_with_migrate) { "{\"deploy\":{\"app\":{\"migrate\":true,\"scm\":{\"revision\":\"sha\"}}}}" }
91
+ example 'with :migrate option' do
92
+ provider.options.update(app_id: 'app-id', migrate: true)
93
+ expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
94
+ expect(client).to receive(:create_deployment).with(
95
+ stack_id: 'stack-id', app_id: 'app-id', command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json_with_migrate
96
+ ).and_return({})
97
+ provider.push_app
98
+ end
99
+
100
+ example 'with :wait_until_deployed' do
101
+ provider.options.update(app_id: 'app-id', wait_until_deployed: true)
102
+ expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
103
+ expect(client).to receive(:create_deployment).and_return({deployment_id: 'deployment_id'})
104
+ expect(client).to receive(:describe_deployments).with({deployment_ids: ['deployment_id']}).and_return({deployments: [status: 'running']}, {deployments: [status: 'successful']})
105
+ provider.push_app
106
+ end
107
+
108
+ example 'with :instance-ids' do
109
+ provider.options.update(app_id: 'app-id', instance_ids: ['instance-id'])
110
+ expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
111
+ expect(client).to receive(:create_deployment).with(
112
+ stack_id: 'stack-id', app_id: 'app-id', instance_ids:['instance-id'], command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
113
+ ).and_return({})
114
+ provider.push_app
115
+ end
116
+
117
+ example 'with :layer-ids' do
118
+ provider.options.update(app_id: 'app-id', layer_ids: ['layer-id'])
119
+ expect(client).to receive(:describe_apps).with(app_ids: ['app-id']).and_return({apps: [ops_works_app]})
120
+ expect(client).to receive(:create_deployment).with(
121
+ stack_id: 'stack-id', app_id: 'app-id', layer_ids:['layer-id'], command: {name: 'deploy'}, comment: 'Deploy build 123 via Travis CI', custom_json: custom_json
122
+ ).and_return({})
123
+ provider.push_app
124
+ end
89
125
  end
90
126
  end
91
127
  end
@@ -127,6 +127,13 @@ describe DPL::Provider::S3 do
127
127
  provider.push_app
128
128
  end
129
129
 
130
+ example "Sets Storage Class" do
131
+ provider.options.update(:storage_class => "STANDARD_AI")
132
+ expect(Dir).to receive(:glob).and_yield(__FILE__)
133
+ expect_any_instance_of(Aws::S3::Object).to receive(:upload_file).with(anything(), hash_including(:storage_class => "STANDARD_AI"))
134
+ provider.push_app
135
+ end
136
+
130
137
  example "Sets Website Index Document" do
131
138
  provider.options.update(:index_document_suffix => "test/index.html")
132
139
  expect(Dir).to receive(:glob).and_yield(__FILE__)
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'json/pure'
1
2
  require 'dpl/error'
2
3
  require 'dpl/provider'
3
4
  require 'rspec/its'
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.8.18.travis.1472.4
4
+ version: 1.8.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-04 00:00:00.000000000 Z
11
+ date: 2016-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -66,6 +66,26 @@ dependencies:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.8.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: tins
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 1.6.0
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: 1.6.0
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 1.6.0
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: 1.6.0
69
89
  - !ruby/object:Gem::Dependency
70
90
  name: coveralls
71
91
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +128,7 @@ files:
108
128
  - lib/dpl/provider/bintray.rb
109
129
  - lib/dpl/provider/bitballoon.rb
110
130
  - lib/dpl/provider/boxfuse.rb
131
+ - lib/dpl/provider/catalyze.rb
111
132
  - lib/dpl/provider/chef_supermarket.rb
112
133
  - lib/dpl/provider/cloud66.rb
113
134
  - lib/dpl/provider/cloud_files.rb
@@ -117,6 +138,7 @@ files:
117
138
  - lib/dpl/provider/divshot.rb
118
139
  - lib/dpl/provider/elastic_beanstalk.rb
119
140
  - lib/dpl/provider/engine_yard.rb
141
+ - lib/dpl/provider/exoscale.rb
120
142
  - lib/dpl/provider/firebase.rb
121
143
  - lib/dpl/provider/gae.rb
122
144
  - lib/dpl/provider/gcs.rb
@@ -153,9 +175,11 @@ files:
153
175
  - spec/provider/anynines_spec.rb
154
176
  - spec/provider/appfog_spec.rb
155
177
  - spec/provider/atlas_spec.rb
178
+ - spec/provider/azure_webapps_spec.rb
156
179
  - spec/provider/bintray_spec.rb
157
180
  - spec/provider/bitballoon_spec.rb
158
181
  - spec/provider/boxfuse_spec.rb
182
+ - spec/provider/catalyze_spec.rb
159
183
  - spec/provider/chef_supermarket_spec.rb
160
184
  - spec/provider/cloud66_spec.rb
161
185
  - spec/provider/cloud_files_spec.rb
@@ -164,6 +188,7 @@ files:
164
188
  - spec/provider/deis_spec.rb
165
189
  - spec/provider/divshot_spec.rb
166
190
  - spec/provider/elastic_beanstalk_spec.rb
191
+ - spec/provider/exoscale_spec.rb
167
192
  - spec/provider/firebase_spec.rb
168
193
  - spec/provider/gae_spec.rb
169
194
  - spec/provider/gcs_spec.rb
@@ -206,13 +231,58 @@ required_ruby_version: !ruby/object:Gem::Requirement
206
231
  version: 1.9.3
207
232
  required_rubygems_version: !ruby/object:Gem::Requirement
208
233
  requirements:
209
- - - ! '>'
234
+ - - ! '>='
210
235
  - !ruby/object:Gem::Version
211
- version: 1.3.1
236
+ version: '0'
212
237
  requirements: []
213
238
  rubyforge_project:
214
- rubygems_version: 2.4.5
239
+ rubygems_version: 2.4.8
215
240
  signing_key:
216
241
  specification_version: 4
217
242
  summary: deploy tool
218
- test_files: []
243
+ test_files:
244
+ - spec/cli_spec.rb
245
+ - spec/provider/anynines_spec.rb
246
+ - spec/provider/appfog_spec.rb
247
+ - spec/provider/atlas_spec.rb
248
+ - spec/provider/azure_webapps_spec.rb
249
+ - spec/provider/bintray_spec.rb
250
+ - spec/provider/bitballoon_spec.rb
251
+ - spec/provider/boxfuse_spec.rb
252
+ - spec/provider/catalyze_spec.rb
253
+ - spec/provider/chef_supermarket_spec.rb
254
+ - spec/provider/cloud66_spec.rb
255
+ - spec/provider/cloud_files_spec.rb
256
+ - spec/provider/cloudfoundry_spec.rb
257
+ - spec/provider/code_deploy_spec.rb
258
+ - spec/provider/deis_spec.rb
259
+ - spec/provider/divshot_spec.rb
260
+ - spec/provider/elastic_beanstalk_spec.rb
261
+ - spec/provider/exoscale_spec.rb
262
+ - spec/provider/firebase_spec.rb
263
+ - spec/provider/gae_spec.rb
264
+ - spec/provider/gcs_spec.rb
265
+ - spec/provider/hackage_spec.rb
266
+ - spec/provider/heroku_anvil_spec.rb
267
+ - spec/provider/heroku_api_spec.rb
268
+ - spec/provider/heroku_git_deploy_key_spec.rb
269
+ - spec/provider/heroku_git_spec.rb
270
+ - spec/provider/lambda_spec.rb
271
+ - spec/provider/launchpad_spec.rb
272
+ - spec/provider/modulus_spec.rb
273
+ - spec/provider/npm_spec.rb
274
+ - spec/provider/openshift_spec.rb
275
+ - spec/provider/ops_works_spec.rb
276
+ - spec/provider/packagecloud_spec.rb
277
+ - spec/provider/puppet_forge_spec.rb
278
+ - spec/provider/pypi_spec.rb
279
+ - spec/provider/releases_spec.rb
280
+ - spec/provider/rubygems_spec.rb
281
+ - spec/provider/s3_spec.rb
282
+ - spec/provider/scalingo_spec.rb
283
+ - spec/provider/script_spec.rb
284
+ - spec/provider/surge_spec.rb
285
+ - spec/provider/testfairy_spec.rb
286
+ - spec/provider/transifex_spec.rb
287
+ - spec/provider_spec.rb
288
+ - spec/spec_helper.rb