rundeck 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rundeck::Request do
4
+ it { is_expected.to respond_to(:get) }
5
+ it { is_expected.to respond_to(:post) }
6
+ it { is_expected.to respond_to(:put) }
7
+ it { is_expected.to respond_to(:delete) }
8
+
9
+ describe '.default_options' do
10
+ subject { Rundeck::Request.default_options }
11
+ it { is_expected.to be_a Hash }
12
+ its([:format]) { is_expected.to eq(:xml) }
13
+ its([:default_params]) { is_expected.to be_nil }
14
+ end
15
+
16
+ describe '#set_request_defaults' do
17
+ context 'when endpoint' do
18
+ context 'is not set' do
19
+ it do
20
+ expect do
21
+ Rundeck::Request.new.set_request_defaults(nil, 'secret')
22
+ end.to raise_error(Rundeck::Error::MissingCredentials,
23
+ 'Please set an endpoint to API')
24
+ end
25
+ end
26
+
27
+ context 'is set' do
28
+ before do
29
+ @rundeck_request = Rundeck::Request.new
30
+ @rundeck_request
31
+ .set_request_defaults('http://api.example.org', 'secret')
32
+ end
33
+ subject { @rundeck_request }
34
+
35
+ it { expect(Rundeck::Request.base_uri).to eq('http://api.example.org') }
36
+ its(:api_token) { is_expected.to eq('secret') }
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rundeck do
4
+ after { Rundeck.reset }
5
+
6
+ # nothing too special to check, just existence
7
+ it { is_expected.to respond_to(:endpoint) }
8
+ it { is_expected.to respond_to(:endpoint=) }
9
+ it { is_expected.to respond_to(:api_token) }
10
+ it { is_expected.to respond_to(:api_token=) }
11
+
12
+ describe '.client' do
13
+ subject { Rundeck.client }
14
+ it { is_expected.to be_a Rundeck::Client }
15
+ end
16
+
17
+ describe '.user_agent=' do
18
+ subject { Rundeck.user_agent }
19
+
20
+ context 'when unspecified' do
21
+ it { is_expected.to eq(Rundeck::Configuration::DEFAULT_USER_AGENT) }
22
+ end
23
+
24
+ context 'when specified' do
25
+ before { Rundeck.user_agent = 'Custom Rundeck Ruby Gem' }
26
+ it { is_expected.to eq('Custom Rundeck Ruby Gem') }
27
+ end
28
+ end
29
+
30
+ # This seems silly, but since we're adding special logic to
31
+ # `method_missing` we should check it still raises an error in
32
+ # the proper case
33
+ describe '.method_missing' do
34
+ context 'when client does not respond' do
35
+ it { expect { Rundeck.fake }.to raise_error NoMethodError }
36
+ end
37
+ end
38
+
39
+ describe '.configure' do
40
+ Rundeck::Configuration::VALID_OPTIONS_KEYS.each do |key|
41
+ context "when setting #{key}" do
42
+ subject { Rundeck.send(key) }
43
+
44
+ before do
45
+ Rundeck.configure do |config|
46
+ config.send("#{key}=", key)
47
+ end
48
+ @key = key == :endpoint ? "#{key}/api/12" : key
49
+ end
50
+
51
+ it { is_expected.to eq(@key) }
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,77 @@
1
+ require 'rspec'
2
+ require 'rspec/its'
3
+ require 'webmock/rspec'
4
+ require 'codeclimate-test-reporter'
5
+
6
+ CodeClimate::TestReporter.start
7
+
8
+ WebMock.disable_net_connect!(allow: 'codeclimate.com')
9
+
10
+ require File.expand_path('../../lib/rundeck', __FILE__)
11
+
12
+ def load_fixture(name)
13
+ File.new(File.dirname(__FILE__) + "/fixtures/#{name}.xml")
14
+ end
15
+
16
+ RSpec.configure do |config|
17
+ config.before(:each) do
18
+ Rundeck.endpoint = 'https://api.example.com'
19
+ Rundeck.api_token = 'secret'
20
+ end
21
+ end
22
+
23
+ # GET
24
+ def stub_get(path, fixture, accept = 'xml')
25
+ stub_request(:get, "#{Rundeck.endpoint}#{path}")
26
+ .with(headers: { 'Accept' => "application/#{accept}",
27
+ 'X-Rundeck-Auth-Token' => Rundeck.api_token })
28
+ .to_return(body: load_fixture(fixture))
29
+ end
30
+
31
+ def a_get(path, accept = 'xml')
32
+ a_request(:get, "#{Rundeck.endpoint}#{path}")
33
+ .with(headers: { 'Accept' => "application/#{accept}",
34
+ 'X-Rundeck-Auth-Token' => Rundeck.api_token })
35
+ end
36
+
37
+ # POST
38
+ def stub_post(path, fixture, status_code = 200, accept = 'xml')
39
+ stub_request(:post, "#{Rundeck.endpoint}#{path}")
40
+ .with(headers: { 'Accept' => "application/#{accept}",
41
+ 'X-Rundeck-Auth-Token' => Rundeck.api_token })
42
+ .to_return(body: load_fixture(fixture), status: status_code)
43
+ end
44
+
45
+ def a_post(path, accept = 'xml')
46
+ a_request(:post, "#{Rundeck.endpoint}#{path}")
47
+ .with(headers: { 'Accept' => "application/#{accept}",
48
+ 'X-Rundeck-Auth-Token' => Rundeck.api_token })
49
+ end
50
+
51
+ # PUT
52
+ def stub_put(path, fixture, accept = 'xml')
53
+ stub_request(:put, "#{Rundeck.endpoint}#{path}")
54
+ .with(headers: { 'Accept' => "application/#{accept}",
55
+ 'X-Rundeck-Auth-Token' => Rundeck.api_token })
56
+ .to_return(body: load_fixture(fixture))
57
+ end
58
+
59
+ def a_put(path, accept = 'xml')
60
+ a_request(:put, "#{Rundeck.endpoint}#{path}")
61
+ .with(headers: { 'Accept' => "application/#{accept}",
62
+ 'X-Rundeck-Auth-Token' => Rundeck.api_token })
63
+ end
64
+
65
+ # DELETE
66
+ def stub_delete(path, fixture, accept = 'xml')
67
+ stub_request(:delete, "#{Rundeck.endpoint}#{path}")
68
+ .with(headers: { 'Accept' => "application/#{accept}",
69
+ 'X-Rundeck-Auth-Token' => Rundeck.api_token })
70
+ .to_return(body: load_fixture(fixture))
71
+ end
72
+
73
+ def a_delete(path, accept = 'xml')
74
+ a_request(:delete, "#{Rundeck.endpoint}#{path}")
75
+ .with(headers: { 'Accept' => "application/#{accept}",
76
+ 'X-Rundeck-Auth-Token' => Rundeck.api_token })
77
+ end
metadata ADDED
@@ -0,0 +1,258 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rundeck
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre
5
+ platform: ruby
6
+ authors:
7
+ - Drew A. Blessing
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: libxml-ruby
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 3.1.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 3.1.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-core
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 3.1.2
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 3.1.2
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-its
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 1.0.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 1.0.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: codeclimate-test-reporter
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: guard-rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ~>
144
+ - !ruby/object:Gem::Version
145
+ version: 4.3.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ~>
151
+ - !ruby/object:Gem::Version
152
+ version: 4.3.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: guard-rubocop
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: Ruby client for Rundeck API
168
+ email:
169
+ - drew.blessing@mac.com
170
+ executables: []
171
+ extensions: []
172
+ extra_rdoc_files: []
173
+ files:
174
+ - .gitignore
175
+ - .hound.yml
176
+ - .rubocop.yml
177
+ - .rubocop_todo.yml
178
+ - .travis.yml
179
+ - Gemfile
180
+ - Guardfile
181
+ - LICENSE.txt
182
+ - README.md
183
+ - Rakefile
184
+ - lib/rundeck.rb
185
+ - lib/rundeck/api.rb
186
+ - lib/rundeck/client.rb
187
+ - lib/rundeck/client/jobs.rb
188
+ - lib/rundeck/client/keys.rb
189
+ - lib/rundeck/configuration.rb
190
+ - lib/rundeck/error.rb
191
+ - lib/rundeck/objectified_hash.rb
192
+ - lib/rundeck/request.rb
193
+ - lib/rundeck/version.rb
194
+ - rundeck.gemspec
195
+ - spec/fixtures/empty.xml
196
+ - spec/fixtures/job.xml
197
+ - spec/fixtures/job_executions.xml
198
+ - spec/fixtures/job_run.xml
199
+ - spec/fixtures/jobs_import.xml
200
+ - spec/fixtures/jobs_my_project.xml
201
+ - spec/fixtures/jobs_xml.xml
202
+ - spec/fixtures/jobs_yaml.xml
203
+ - spec/fixtures/key_contents_public.xml
204
+ - spec/fixtures/key_private.xml
205
+ - spec/fixtures/key_public.xml
206
+ - spec/fixtures/keys.xml
207
+ - spec/rundeck/client/jobs_spec.rb
208
+ - spec/rundeck/client/keys_spec.rb
209
+ - spec/rundeck/client_spec.rb
210
+ - spec/rundeck/objectified_hash_spec.rb
211
+ - spec/rundeck/request_spec.rb
212
+ - spec/rundeck_spec.rb
213
+ - spec/spec_helper.rb
214
+ homepage: https://github.com/dblessing/rundeck
215
+ licenses:
216
+ - BSD-2-Clause
217
+ metadata: {}
218
+ post_install_message:
219
+ rdoc_options: []
220
+ require_paths:
221
+ - lib
222
+ required_ruby_version: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - '>='
225
+ - !ruby/object:Gem::Version
226
+ version: '0'
227
+ required_rubygems_version: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - '>'
230
+ - !ruby/object:Gem::Version
231
+ version: 1.3.1
232
+ requirements: []
233
+ rubyforge_project:
234
+ rubygems_version: 2.0.3
235
+ signing_key:
236
+ specification_version: 4
237
+ summary: A ruby wrapper for the Rundeck API
238
+ test_files:
239
+ - spec/fixtures/empty.xml
240
+ - spec/fixtures/job.xml
241
+ - spec/fixtures/job_executions.xml
242
+ - spec/fixtures/job_run.xml
243
+ - spec/fixtures/jobs_import.xml
244
+ - spec/fixtures/jobs_my_project.xml
245
+ - spec/fixtures/jobs_xml.xml
246
+ - spec/fixtures/jobs_yaml.xml
247
+ - spec/fixtures/key_contents_public.xml
248
+ - spec/fixtures/key_private.xml
249
+ - spec/fixtures/key_public.xml
250
+ - spec/fixtures/keys.xml
251
+ - spec/rundeck/client/jobs_spec.rb
252
+ - spec/rundeck/client/keys_spec.rb
253
+ - spec/rundeck/client_spec.rb
254
+ - spec/rundeck/objectified_hash_spec.rb
255
+ - spec/rundeck/request_spec.rb
256
+ - spec/rundeck_spec.rb
257
+ - spec/spec_helper.rb
258
+ has_rdoc: