jenkins_api_client 1.4.5 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/jenkins_api_client.gemspec +15 -136
  3. data/lib/jenkins_api_client/version.rb +2 -2
  4. metadata +6 -180
  5. data/.gitignore +0 -41
  6. data/.jenkins.yml +0 -9
  7. data/.travis.yml +0 -15
  8. data/CHANGELOG.md +0 -391
  9. data/CONTRIBUTORS.md +0 -3
  10. data/Gemfile +0 -20
  11. data/LICENCE +0 -21
  12. data/README.md +0 -454
  13. data/Rakefile +0 -107
  14. data/Vagrantfile +0 -83
  15. data/config/login.yml.example +0 -27
  16. data/jenkins_api_client_class_diagram.png +0 -0
  17. data/scripts/login_with_irb.rb +0 -54
  18. data/scripts/login_with_pry.rb +0 -54
  19. data/spec/func_tests/client_spec.rb +0 -109
  20. data/spec/func_tests/job_spec.rb +0 -669
  21. data/spec/func_tests/node_spec.rb.pending +0 -217
  22. data/spec/func_tests/plugin_spec.rb +0 -148
  23. data/spec/func_tests/spec_helper.rb +0 -41
  24. data/spec/func_tests/system_spec.rb +0 -84
  25. data/spec/func_tests/user_spec.rb +0 -49
  26. data/spec/func_tests/view_spec.rb +0 -276
  27. data/spec/unit_tests/build_queue_spec.rb +0 -152
  28. data/spec/unit_tests/client_spec.rb +0 -471
  29. data/spec/unit_tests/fake_http_response.rb +0 -9
  30. data/spec/unit_tests/fixtures/files/available_plugins.json +0 -1
  31. data/spec/unit_tests/fixtures/files/computer_sample.xml +0 -17
  32. data/spec/unit_tests/fixtures/files/installed_plugins.json +0 -1
  33. data/spec/unit_tests/fixtures/files/job_sample.xml +0 -16
  34. data/spec/unit_tests/fixtures/files/updatable_plugins.json +0 -1
  35. data/spec/unit_tests/job_spec.rb +0 -783
  36. data/spec/unit_tests/node_spec.rb +0 -342
  37. data/spec/unit_tests/plugin_settings/colllection_spec.rb +0 -62
  38. data/spec/unit_tests/plugin_settings/hipchat_spec.rb +0 -44
  39. data/spec/unit_tests/plugin_settings/workspace_cleanup_spec.rb +0 -31
  40. data/spec/unit_tests/plugin_spec.rb +0 -165
  41. data/spec/unit_tests/spec_helper.rb +0 -19
  42. data/spec/unit_tests/system_spec.rb +0 -76
  43. data/spec/unit_tests/user_spec.rb +0 -144
  44. data/spec/unit_tests/view_spec.rb +0 -149
  45. data/travis/hudson.model.UpdateCenter.xml +0 -7
  46. data/travis/jenkins_config.xml +0 -63
  47. data/travis/jenkins_config_with_crumb.xml +0 -67
  48. data/travis/setup.sh +0 -23
  49. data/travis/setup_crumb.sh +0 -11
  50. data/travis/spec.yml +0 -14
  51. data/travis/user_config.xml +0 -29
@@ -1,471 +0,0 @@
1
- require File.expand_path('../spec_helper', __FILE__)
2
-
3
- describe JenkinsApi::Client do
4
- context "With valid credentials given" do
5
- before do
6
- @client = JenkinsApi::Client.new(
7
- :server_ip => '127.0.0.1',
8
- :server_port => 8080,
9
- :username => 'username',
10
- :password => 'password',
11
- :log_location => '/dev/null'
12
- )
13
- end
14
-
15
- describe "#initialize" do
16
- it "initializes without exception" do
17
- expect(
18
- lambda do
19
- JenkinsApi::Client.new(
20
- :server_ip => '127.0.0.1',
21
- :server_port => 8080,
22
- :username => 'username',
23
- :password => 'password'
24
- )
25
- end
26
- ).not_to raise_error
27
- end
28
-
29
- it "initialize without exception if username/password not specified" do
30
- expect(
31
- lambda do
32
- JenkinsApi::Client.new({
33
- :server_ip => '127.0.0.1',
34
- :server_port => 8080
35
- })
36
- end
37
- ).not_to raise_error
38
- end
39
-
40
- it "initializes with server_url without exception" do
41
- expect(
42
- lambda do
43
- JenkinsApi::Client.new(
44
- :server_url => 'http://localhost',
45
- :username => 'username',
46
- :password => 'password'
47
- )
48
- end
49
- ).not_to raise_error
50
- end
51
-
52
- it "initializes the username and password from server_url" do
53
- client = JenkinsApi::Client.new(
54
- :server_url => 'http://someuser:asdf@localhost'
55
- )
56
-
57
- client.instance_variable_get('@username').should == 'someuser'
58
- client.instance_variable_get('@password').should == 'asdf'
59
- end
60
-
61
- it "uses explicit username, password over one in the server_url" do
62
- client = JenkinsApi::Client.new(
63
- :server_url => 'http://someuser:asdf@localhost',
64
- :username => 'otheruser',
65
- :password => '1234'
66
- )
67
-
68
- client.instance_variable_get('@username').should == 'otheruser'
69
- client.instance_variable_get('@password').should == '1234'
70
- end
71
-
72
- it "initializes with proxy args without exception" do
73
- expect(
74
- lambda do
75
- JenkinsApi::Client.new(
76
- :server_ip => '127.0.0.1',
77
- :server_port => 8080,
78
- :username => 'username',
79
- :password => 'password',
80
- :proxy_ip => '127.0.0.1',
81
- :proxy_port => 8081
82
- )
83
- end
84
- ).not_to raise_error
85
- end
86
-
87
- it "errors on bad proxy args" do
88
- expect(
89
- lambda do
90
- JenkinsApi::Client.new(
91
- :server_ip => '127.0.0.1',
92
- :server_port => 8080,
93
- :username => 'username',
94
- :password => 'password',
95
- :proxy_ip => '127.0.0.1'
96
- )
97
- end
98
- ).to raise_error
99
- end
100
- end
101
-
102
- describe "#SubClassAccessorMethods" do
103
- describe "#job" do
104
- it "Should return a Client::Job object" do
105
- client = JenkinsApi::Client.new(
106
- :server_ip => '127.0.0.1',
107
- :server_port => 8080,
108
- :username => 'username',
109
- :password => 'password'
110
- )
111
- client.job.class.should == JenkinsApi::Client::Job
112
- end
113
- end
114
-
115
- describe "#node" do
116
- it "Should return a Client::Node object" do
117
- client = JenkinsApi::Client.new(
118
- :server_ip => '127.0.0.1',
119
- :server_port => 8080,
120
- :username => 'username',
121
- :password => 'password'
122
- )
123
- client.node.class.should == JenkinsApi::Client::Node
124
- end
125
- end
126
-
127
- describe "#view" do
128
- it "Should return a Client::View object" do
129
- client = JenkinsApi::Client.new(
130
- :server_ip => '127.0.0.1',
131
- :server_port => 8080,
132
- :username => 'username',
133
- :password => 'password'
134
- )
135
- client.view.class.should == JenkinsApi::Client::View
136
- end
137
- end
138
-
139
- describe "#system" do
140
- it "Should return a Client::System object" do
141
- client = JenkinsApi::Client.new(
142
- :server_ip => '127.0.0.1',
143
- :server_port => 8080,
144
- :username => 'username',
145
- :password => 'password'
146
- )
147
- client.system.class.should == JenkinsApi::Client::System
148
- end
149
- end
150
-
151
- describe "#queue" do
152
- it "Should return a Client::BuildQueue object" do
153
- client = JenkinsApi::Client.new(
154
- :server_ip => '127.0.0.1',
155
- :server_port => 8080,
156
- :username => 'username',
157
- :password => 'password'
158
- )
159
- client.queue.class.should == JenkinsApi::Client::BuildQueue
160
- end
161
- end
162
- end
163
-
164
- describe "InstanceMethods" do
165
- describe "#get_root" do
166
- it "is defined with no parameters" do
167
- @client.respond_to?(:get_root).should be_true
168
- @client.method(:get_root).parameters.size.should == 0
169
- end
170
- end
171
-
172
- describe "#api_get_request" do
173
- it "defined and should accept url_prefix, tree, and url_suffix" do
174
- @client.respond_to?(:api_get_request).should be_true
175
- @client.method(:api_get_request).parameters.size.should == 4
176
- end
177
- end
178
-
179
- describe "#api_post_request" do
180
- it "is defined and should accept url_prefix" do
181
- @client.respond_to?(:api_post_request).should be_true
182
- @client.method(:api_post_request).parameters.size.should == 3
183
- end
184
- end
185
-
186
- describe "#get_config" do
187
- it "is defined and should accept url_prefix" do
188
- @client.respond_to?(:get_config).should be_true
189
- @client.method(:get_config).parameters.size.should == 1
190
- end
191
- end
192
-
193
- describe "#post_config" do
194
- it "is defined and should accept url_prefix and xml" do
195
- @client.respond_to?(:post_config).should be_true
196
- @client.method(:post_config).parameters.size.should == 2
197
- end
198
-
199
- it "sets the content type with charset as UTF-8 for the multi-byte content" do
200
- url_prefix = '/prefix'
201
- xml = '<dummy>dummy</dummy>'
202
- content_type = 'application/xml;charset=UTF-8'
203
-
204
- expect(@client).to receive(:post_data).with(url_prefix, xml, content_type)
205
- @client.post_config(url_prefix, xml)
206
- end
207
- end
208
-
209
- describe "#post_json" do
210
- it "is defined and should accept url_prefix and json" do
211
- @client.respond_to?(:post_json).should be_true
212
- @client.method(:post_json).parameters.size.should == 2
213
- end
214
-
215
- it "sets the content type with charset as UTF-8 for the multi-byte content" do
216
- url_prefix = '/prefix'
217
- json = '{ "dummy": "dummy" }'
218
- content_type = 'application/json;charset=UTF-8'
219
-
220
- expect(@client).to receive(:post_data).with(url_prefix, json, content_type)
221
- @client.post_json(url_prefix, json)
222
- end
223
- end
224
-
225
- describe "#get_jenkins_version" do
226
- it "is defined and accepts no parameters" do
227
- @client.respond_to?(:get_jenkins_version).should be_true
228
- @client.method(:get_jenkins_version).parameters.size.should == 0
229
- end
230
- end
231
-
232
- describe "#get_hudson_version" do
233
- it "is defined and accepts no parameters" do
234
- @client.respond_to?(:get_hudson_version).should be_true
235
- @client.method(:get_hudson_version).parameters.size.should == 0
236
- end
237
- end
238
-
239
- describe "#get_server_date" do
240
- it "is defined and accepts no parameters" do
241
- @client.respond_to?(:get_server_date).should be_true
242
- @client.method(:get_server_date).parameters.size.should == 0
243
- end
244
- end
245
-
246
- describe "#exec_script" do
247
- it "is defined and should accept script to execute" do
248
- @client.respond_to?(:exec_script).should be_true
249
- @client.method(:exec_script).parameters.size.should == 1
250
- end
251
- end
252
-
253
- describe "#exec_cli" do
254
- it "is defined and should execute the CLI" do
255
- @client.respond_to?(:exec_cli).should be_true
256
- @client.method(:exec_cli).parameters.size.should == 2
257
- end
258
- end
259
-
260
- describe "#deconstruct_version_string" do
261
- it "is defined and accepts a single param" do
262
- @client.respond_to?(:deconstruct_version_string).should be_true
263
- @client.method(:deconstruct_version_string).parameters.size.should == 1
264
- end
265
-
266
- it "takes a version string in the form 'a.b' and returns an array [a,b,c]" do
267
- TEST_2_PART_VERSION_STRING = "1.002"
268
- version = @client.deconstruct_version_string(TEST_2_PART_VERSION_STRING)
269
- version.should_not be_nil
270
- version.should_not be_empty
271
- version.size.should eql 3
272
- version[0].should eql 1
273
- version[1].should eql 2
274
- version[2].should eql 0
275
- end
276
-
277
- it "takes a version string in the form 'a.b.c' and returns an array [a,b]" do
278
- TEST_3_PART_VERSION_STRING = "1.002.3"
279
- version = @client.deconstruct_version_string(TEST_3_PART_VERSION_STRING)
280
- version.should_not be_nil
281
- version.should_not be_empty
282
- version.size.should eql 3
283
- version[0].should eql 1
284
- version[1].should eql 2
285
- version[2].should eql 3
286
- end
287
-
288
- it "should fail if parameter is not a string" do
289
- expect(
290
- lambda { @client.deconstruct_version_string(1) }
291
- ).to raise_error(NoMethodError) # match for fixnum
292
- end
293
-
294
- it "should return nil if parameter is not a string in the form '\d+.\d+(.\d+)'" do
295
- @client.deconstruct_version_string("A.B").should be_nil
296
- @client.deconstruct_version_string("1").should be_nil
297
- @client.deconstruct_version_string("1.").should be_nil
298
- @client.deconstruct_version_string("1.2.3.4").should be_nil
299
- end
300
- end
301
-
302
- describe "#compare_versions" do
303
- it "is defined and accepts two params" do
304
- @client.respond_to?(:compare_versions).should be_true
305
- @client.method(:compare_versions).parameters.size.should == 2
306
- end
307
-
308
- it "should correctly compare version numbers" do
309
- @client.compare_versions("1.0", "1.0").should eql(0)
310
- @client.compare_versions("1.0", "1.1").should eql(-1)
311
- @client.compare_versions("1.1", "1.0").should eql(1)
312
- @client.compare_versions("2.0", "1.99").should eql(1)
313
- @client.compare_versions("1.10", "1.2").should eql(1)
314
-
315
- @client.compare_versions("1.0.0", "1.0.0").should eql(0)
316
- @client.compare_versions("1.0", "1.0.1").should eql(-1)
317
- @client.compare_versions("1.1", "1.0.1").should eql(1)
318
- @client.compare_versions("2.0.0", "1.999.99").should eql(1)
319
- @client.compare_versions("1.0.10", "1.0.2").should eql(1)
320
- end
321
- end
322
-
323
- describe "#use_crumbs?" do
324
- it "returns true if the server has useCrumbs on" do
325
- expect(@client).to receive(:api_get_request).with("", "tree=useCrumbs") {
326
- {
327
- "useCrumbs" => true
328
- }
329
- }
330
- @client.use_crumbs?.should == true
331
- end
332
-
333
- it "returns false if the server has useCrumbs off" do
334
- expect(@client).to receive(:api_get_request).with("", "tree=useCrumbs") {
335
- {
336
- "useCrumbs" => false
337
- }
338
- }
339
- @client.use_crumbs?.should == false
340
- end
341
- end
342
-
343
- describe "#use_security?" do
344
- it "returns true if the server has useSecurity on" do
345
- expect(@client).to receive(:api_get_request).with("", "tree=useSecurity") {
346
- {
347
- "useSecurity" => true
348
- }
349
- }
350
- @client.use_security?.should == true
351
- end
352
-
353
- it "returns false if the server has useSecurity off" do
354
- expect(@client).to receive(:api_get_request).with("", "tree=useSecurity") {
355
- {
356
- "useSecurity" => false
357
- }
358
- }
359
- @client.use_security?.should == false
360
- end
361
- end
362
- end
363
- end
364
-
365
- context "With some required parameters missing" do
366
- context "#initialize" do
367
- it "Should fail if server_ip and server_url are missing" do
368
- expect(
369
- lambda do
370
- JenkinsApi::Client.new({
371
- :bogus => '127.0.0.1',
372
- :bogus_url => 'http://localhost',
373
- :server_port => 8080,
374
- :username => 'username',
375
- :password => 'password'
376
- })
377
- end
378
- ).to raise_error
379
- end
380
-
381
- it "Should fail if password is missing" do
382
- expect(
383
- lambda do
384
- JenkinsApi::Client.new({
385
- :server_ip => '127.0.0.1',
386
- :server_port => 8080,
387
- :username => 'username',
388
- :bogus => 'password'
389
- })
390
- end
391
- ).to raise_error
392
- end
393
-
394
- it "Should fail if proxy_ip is specified but proxy_port is not" do
395
- expect(
396
- lambda do
397
- JenkinsApi::Client.new({
398
- :bogus => '127.0.0.1',
399
- :server_port => 8080,
400
- :username => 'username',
401
- :password => 'password',
402
- :proxy_ip => '127.0.0.1',
403
- })
404
- end
405
- ).to raise_error
406
- end
407
-
408
- it "Should fail if proxy_port is specified but proxy_ip is not" do
409
- expect(
410
- lambda do
411
- JenkinsApi::Client.new({
412
- :bogus => '127.0.0.1',
413
- :server_port => 8080,
414
- :username => 'username',
415
- :password => 'password',
416
- :proxy_port => 8081,
417
- })
418
- end
419
- ).to raise_error
420
- end
421
- end
422
- end
423
-
424
- context "With logging configuration" do
425
-
426
- it "Should fail if logger is not a Logger object" do
427
- expect(
428
- lambda do
429
- JenkinsApi::Client.new({
430
- :server_ip => '127.0.0.1',
431
- :logger => 'testing',
432
- })
433
- end
434
- ).to raise_error
435
- end
436
-
437
- it "Should set logger instance variable to Logger" do
438
- client = JenkinsApi::Client.new(
439
- :server_ip => '127.0.0.1',
440
- :logger => Logger.new(STDOUT),
441
- )
442
-
443
- client.instance_variable_get('@logger').class.should == Logger
444
- end
445
-
446
- it "Should fail if logger and log_level are both set" do
447
- expect(
448
- lambda do
449
- JenkinsApi::Client.new({
450
- :server_ip => '127.0.0.1',
451
- :logger => Logger.new(STDOUT),
452
- :log_level => Logger::INFO,
453
- })
454
- end
455
- ).to raise_error
456
- end
457
-
458
- it "Should fail if logger and log_location are both set" do
459
- expect(
460
- lambda do
461
- JenkinsApi::Client.new({
462
- :server_ip => '127.0.0.1',
463
- :logger => Logger.new(STDOUT),
464
- :log_location => 'test.log',
465
- })
466
- end
467
- ).to raise_error
468
- end
469
-
470
- end
471
- end