jenkins-remote-api_1 1.0.3

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.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/Gemfile +10 -0
  4. data/Gemfile.lock +27 -0
  5. data/LICENSE +19 -0
  6. data/README.md +177 -0
  7. data/Rakefile +10 -0
  8. data/fixtures/vcr_cassettes/TestHudsonBuildQueue_test_list.yml +38 -0
  9. data/fixtures/vcr_cassettes/TestHudsonBuild_setup.yml +407 -0
  10. data/fixtures/vcr_cassettes/TestHudsonBuild_test_build_info.yml +222 -0
  11. data/fixtures/vcr_cassettes/TestHudsonClient_test_build_job_.yml +52 -0
  12. data/fixtures/vcr_cassettes/TestHudsonClient_test_build_job_with_parameters_.yml +52 -0
  13. data/fixtures/vcr_cassettes/TestHudsonClient_test_build_queue_info.yml +38 -0
  14. data/fixtures/vcr_cassettes/TestHudsonClient_test_create_item_.yml +52 -0
  15. data/fixtures/vcr_cassettes/TestHudsonClient_test_delete_job_.yml +52 -0
  16. data/fixtures/vcr_cassettes/TestHudsonClient_test_job_build_info.yml +39 -0
  17. data/fixtures/vcr_cassettes/TestHudsonClient_test_job_config_info.yml +48 -0
  18. data/fixtures/vcr_cassettes/TestHudsonJob_test_build.yml +409 -0
  19. data/fixtures/vcr_cassettes/TestHudsonJob_test_build_with_params.yml +189 -0
  20. data/fixtures/vcr_cassettes/TestHudsonJob_test_builds_list.yml +192 -0
  21. data/fixtures/vcr_cassettes/TestHudsonJob_test_copy.yml +410 -0
  22. data/fixtures/vcr_cassettes/TestHudsonJob_test_create.yml +257 -0
  23. data/fixtures/vcr_cassettes/TestHudsonJob_test_desc_update.yml +281 -0
  24. data/fixtures/vcr_cassettes/TestHudsonJob_test_get.yml +191 -0
  25. data/fixtures/vcr_cassettes/TestHudsonJob_test_job_with_spaces.yml +260 -0
  26. data/fixtures/vcr_cassettes/TestHudsonJob_test_list.yml +39 -0
  27. data/fixtures/vcr_cassettes/TestHudsonJob_test_list_active.yml +39 -0
  28. data/fixtures/vcr_cassettes/TestHudsonJob_test_new.yml +561 -0
  29. data/fixtures/vcr_cassettes/TestHudsonJob_test_scm_url.yml +728 -0
  30. data/fixtures/vcr_cassettes/TestHudsonJob_test_triggers_delete.yml +588 -0
  31. data/fixtures/vcr_cassettes/TestHudsonJob_test_triggers_set.yml +346 -0
  32. data/fixtures/vcr_cassettes/TestHudsonJob_test_triggers_set_using_shortcut.yml +346 -0
  33. data/fixtures/vcr_cassettes/TestHudsonJob_test_url.yml +156 -0
  34. data/fixtures/vcr_cassettes/TestHudsonJob_test_wipe_out_workspace.yml +685 -0
  35. data/jenkins-remote-api_1.gemspec +23 -0
  36. data/lib/jenkins-remote-api_1.rb +5 -0
  37. data/lib/jenkins-remote-api_1/build.rb +24 -0
  38. data/lib/jenkins-remote-api_1/build_queue.rb +16 -0
  39. data/lib/jenkins-remote-api_1/client.rb +179 -0
  40. data/lib/jenkins-remote-api_1/errors.rb +3 -0
  41. data/lib/jenkins-remote-api_1/hudson_xml_api.rb +61 -0
  42. data/lib/jenkins-remote-api_1/job.rb +212 -0
  43. data/lib/jenkins-remote-api_1/multicast.rb +22 -0
  44. data/lib/jenkins-remote-api_1/new_job_config.xml +16 -0
  45. data/lib/jenkins-remote-api_1/parser/build_info.rb +37 -0
  46. data/lib/jenkins-remote-api_1/parser/build_queue_info.rb +19 -0
  47. data/lib/jenkins-remote-api_1/parser/job_config_info.rb +99 -0
  48. data/lib/jenkins-remote-api_1/parser/job_info.rb +62 -0
  49. data/lib/jenkins-remote-api_1/parser/multicast.rb +28 -0
  50. data/lib/jenkins-remote-api_1/parser/server_info.rb +49 -0
  51. data/lib/jenkins-remote-api_1/settings.rb +31 -0
  52. data/lib/jenkins-remote-api_1/version.rb +3 -0
  53. data/lib/jenkins-remote-api_1/xml_writer/job_config_info.rb +113 -0
  54. data/test/test_helper.rb +10 -0
  55. data/test/test_hudson_build.rb +28 -0
  56. data/test/test_hudson_build_queue.rb +11 -0
  57. data/test/test_hudson_client.rb +65 -0
  58. data/test/test_hudson_job.rb +162 -0
  59. data/test/test_hudson_multicast.rb +9 -0
  60. data/test/test_hudson_settings.rb +70 -0
  61. metadata +112 -0
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'vcr'
4
+ require './lib/jenkins-remote-api_1.rb'
5
+
6
+ VCR.configure do |c|
7
+ c.cassette_library_dir = 'fixtures/vcr_cassettes'
8
+ c.hook_into :webmock # or :fakeweb
9
+ c.allow_http_connections_when_no_cassette = true
10
+ end
@@ -0,0 +1,28 @@
1
+ require 'test_helper.rb'
2
+
3
+ class TestHudsonBuild < Test::Unit::TestCase
4
+
5
+ def setup
6
+ VCR.use_cassette("#{self.class}_#{__method__}", :record => :new_episodes) do
7
+ assert Hudson::Job.new('test_job').build
8
+ assert Hudson::Build.new('test_job')
9
+ end
10
+ end
11
+
12
+ def test_build_info
13
+ VCR.use_cassette("#{self.class}_#{__method__}", :record => :new_episodes) do
14
+ build = Hudson::Build.new('test_job')
15
+ assert_equal 'test_job', build.job.name
16
+
17
+ assert build.number.to_i > 0, "build number test failed"
18
+
19
+ assert build.revisions, "build revisions test failed"
20
+ assert build.revisions.kind_of?(Hash), "build revisions is not an Hash"
21
+
22
+ assert_equal "SUCCESS", build.result, "build result test failed"
23
+
24
+ assert_nil build.culprit, "build culprit test failed"
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper.rb'
2
+
3
+ class TestHudsonBuildQueue < Test::Unit::TestCase
4
+
5
+ def test_list
6
+ VCR.use_cassette("#{self.class}_#{__method__}") do
7
+ assert Hudson::BuildQueue.list
8
+ end
9
+ end
10
+
11
+ end
@@ -0,0 +1,65 @@
1
+ require 'test_helper.rb'
2
+
3
+ class TestHudsonClient < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @client = Hudson.client
7
+ end
8
+
9
+ def config
10
+ File.open(File.dirname(__FILE__) + '/../lib/jenkins-remote-api_1/new_job_config.xml').read
11
+ end
12
+
13
+ def test_initialization
14
+ Hudson::Client.new
15
+ end
16
+
17
+ def test_job_build_info
18
+ VCR.use_cassette("#{self.class}_#{__method__}") do
19
+ assert @client.job_build_info('test_job', 1)
20
+ end
21
+ end
22
+
23
+ def test_build_queue_info
24
+ VCR.use_cassette("#{self.class}_#{__method__}") do
25
+ response = @client.build_queue_info
26
+ assert_kind_of(String, response)
27
+ assert(!response.empty?)
28
+ end
29
+ end
30
+
31
+ def test_build_job!
32
+ VCR.use_cassette("#{self.class}_#{__method__}") do
33
+ response = @client.build_job!('test_job')
34
+ assert response
35
+ end
36
+ end
37
+
38
+ def test_build_job_with_parameters!
39
+ VCR.use_cassette("#{self.class}_#{__method__}") do
40
+ response = @client.build_job_with_parameters!('test_job', {})
41
+ assert response
42
+ end
43
+ end
44
+
45
+ def test_job_config_info
46
+ VCR.use_cassette("#{self.class}_#{__method__}") do
47
+ response = @client.job_config_info('test_job')
48
+ assert response
49
+ end
50
+ end
51
+
52
+ def test_create_item!
53
+ VCR.use_cassette("#{self.class}_#{__method__}") do
54
+ response = @client.create_item!({:name=>"new_test_job", :mode=>"hudson.model.FreeStyleProject", :config=>config})
55
+ assert response
56
+ end
57
+ end
58
+
59
+ def test_delete_job!
60
+ VCR.use_cassette("#{self.class}_#{__method__}") do
61
+ response = @client.delete_job!('new_test_job')
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,162 @@
1
+ require 'test_helper.rb'
2
+
3
+ class TestHudsonJob < Test::Unit::TestCase
4
+ TEST_SVN_REPO_URL = "http://svn.apache.org/repos/asf/subversion/trunk/doc/user/"
5
+
6
+ def setup
7
+ Hudson.client.configuration.host = "http://localhost:8080"
8
+ end
9
+
10
+ def test_list
11
+ VCR.use_cassette("#{self.class}_#{__method__}") do
12
+ assert Hudson::Job.list
13
+ end
14
+ end
15
+
16
+ def test_list_active
17
+ VCR.use_cassette("#{self.class}_#{__method__}") do
18
+ assert Hudson::Job.list_active
19
+ end
20
+ end
21
+
22
+ def test_create
23
+ VCR.use_cassette("#{self.class}_#{__method__}") do
24
+ new_job_name = 'new_test_job'
25
+ new_job = Hudson::Job.create(new_job_name)
26
+ assert new_job
27
+ assert_equal(new_job_name, new_job.name)
28
+ assert_equal(true, new_job.triggers.empty?, "New job should have empty triggers")
29
+ assert new_job.delete
30
+ end
31
+ end
32
+
33
+ def test_get
34
+ VCR.use_cassette("#{self.class}_#{__method__}") do
35
+ job = Hudson::Job.get('test_job')
36
+ assert job
37
+ assert_equal 'test_job', job.name, "failed to get job name"
38
+ end
39
+ end
40
+
41
+ def test_desc_update
42
+ VCR.use_cassette("#{self.class}_#{__method__}", :record => :new_episodes) do
43
+ job = Hudson::Job.new('test_job')
44
+ assert job.description = "test"
45
+ assert job.description != nil, "Job description should not be nil"
46
+ end
47
+ end
48
+
49
+ def test_scm_url
50
+ VCR.use_cassette("#{self.class}_#{__method__}", :record => :new_episodes) do
51
+ job = Hudson::Job.new('test_svn_job')
52
+ job.build
53
+ assert job.repository_url = TEST_SVN_REPO_URL
54
+
55
+ job = Hudson::Job.new('test_svn_job')
56
+ assert_equal TEST_SVN_REPO_URL, job.repository_url
57
+ end
58
+ end
59
+
60
+ def test_new
61
+ VCR.use_cassette("#{self.class}_#{__method__}") do
62
+ job = Hudson::Job.new('test_job')
63
+ assert job
64
+ assert_equal('test_job', job.name)
65
+
66
+ new_job = Hudson::Job.new('test_job2')
67
+ assert new_job
68
+ assert_equal(new_job.name, 'test_job2')
69
+ assert new_job.delete
70
+ end
71
+ end
72
+
73
+ def test_copy
74
+ VCR.use_cassette("#{self.class}_#{__method__}") do
75
+ job = Hudson::Job.get('test_job')
76
+ new_job = job.copy
77
+ assert new_job
78
+ assert_equal('copy_of_test_job', new_job.name)
79
+ assert new_job.delete
80
+ end
81
+ end
82
+
83
+ def test_job_with_spaces
84
+ VCR.use_cassette("#{self.class}_#{__method__}") do
85
+ job = Hudson::Job.create('test job with spaces')
86
+ assert job
87
+ assert job.name
88
+ assert job.delete
89
+ end
90
+ end
91
+
92
+ def test_builds_list
93
+ VCR.use_cassette("#{self.class}_#{__method__}") do
94
+ job = Hudson::Job.get("test_job")
95
+ assert job.builds_list.kind_of?(Array)
96
+ end
97
+ end
98
+
99
+ def test_build
100
+ VCR.use_cassette("#{self.class}_#{__method__}") do
101
+ job_name = 'test_job'
102
+ job = Hudson::Job.new(job_name)
103
+
104
+ assert job.build
105
+ end
106
+ end
107
+
108
+ def test_build_with_params
109
+ VCR.use_cassette("#{self.class}_#{__method__}") do
110
+ job_name = 'test_job'
111
+ job = Hudson::Job.new(job_name)
112
+
113
+ assert job.build
114
+ end
115
+ end
116
+
117
+ def test_triggers_set
118
+ VCR.use_cassette("#{self.class}_#{__method__}", :record => :new_episodes) do
119
+ job_name = 'build_triggers'
120
+ job = Hudson::Job.create(job_name)
121
+
122
+ job.triggers = { "hudson.triggers.SCMTrigger" => '* * * * *' }
123
+ assert_equal(1, job.triggers.size, "Failed to set triggers with 1 trigger.")
124
+ assert_equal({"hudson.triggers.SCMTrigger" => '* * * * *'}, job.triggers, "Failed to set triggers with 1 trigger.")
125
+
126
+ assert job.delete
127
+ end
128
+ end
129
+
130
+ def test_triggers_set_using_shortcut
131
+ VCR.use_cassette("#{self.class}_#{__method__}", :record => :new_episodes) do
132
+ job_name = 'build_triggers'
133
+ job = Hudson::Job.create(job_name)
134
+
135
+ job.triggers = { "SCMTrigger" => '* * * * *', 'TimerTrigger' => '0 22 * * *' }
136
+ assert_equal(2, job.triggers.size, "Failed to set triggers using shortcut.")
137
+ assert_equal({"hudson.triggers.SCMTrigger"=>"* * * * *", "hudson.triggers.TimerTrigger"=>"0 22 * * *"}, job.triggers, "Failed to set triggers using shortcut.")
138
+
139
+ assert job.delete
140
+ end
141
+ end
142
+
143
+ def test_triggers_delete
144
+ VCR.use_cassette("#{self.class}_#{__method__}", :record => :new_episodes) do
145
+ job_name = 'build_triggers'
146
+ job = Hudson::Job.create(job_name)
147
+
148
+ job.triggers = { "SCMTrigger" => '* * * * *', 'TimerTrigger' => '0 22 * * *' }
149
+ job.triggers = {}
150
+ assert_equal(true, job.triggers.empty?, "Failed to delete triggers.")
151
+
152
+ assert job.delete
153
+ end
154
+ end
155
+
156
+ def test_wipe_out_workspace
157
+ VCR.use_cassette("#{self.class}_#{__method__}", :record => :new_episodes) do
158
+ job = Hudson::Job.create('test_wipe_out_workspace')
159
+ assert job.wipe_out_workspace
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper.rb'
2
+
3
+ class TestHudsonMulticast < Test::Unit::TestCase
4
+
5
+ def test_multicast
6
+ assert_nothing_thrown{ Hudson.discover }
7
+ end
8
+
9
+ end
@@ -0,0 +1,70 @@
1
+ require 'test_helper.rb'
2
+
3
+ class TestHudsonBuild < Test::Unit::TestCase
4
+
5
+ def setup
6
+
7
+ end
8
+
9
+ def test_initialization
10
+ settings_hash = {
11
+ :host => 'http://localhost:8080',
12
+ :user => 'test_user',
13
+ :password => 'test_password',
14
+ :version => 'test_version',
15
+ :crumb => 'test_crumb',
16
+ :proxy_host => 'test_proxy_host',
17
+ :proxy_port => 'test_proxy_port'
18
+ }
19
+ settings = Hudson::Settings.new(settings_hash)
20
+ assert_equal 'http://localhost:8080', settings.configuration.host
21
+ assert_equal 'test_user', settings.configuration.user
22
+ assert_equal 'test_password', settings.configuration.password
23
+ assert_equal 'test_version', settings.configuration.version
24
+ assert_equal 'test_crumb', settings.configuration.crumb
25
+ assert_equal 'test_proxy_host', settings.configuration.proxy_host
26
+ assert_equal 'test_proxy_port', settings.configuration.proxy_port
27
+ end
28
+
29
+ def test_host_assignment
30
+ settings = Hudson::Settings.new({})
31
+ settings.configuration.host = "http://test.com"
32
+ assert_equal "http://test.com", settings.configuration.host
33
+ end
34
+
35
+ def test_user_assignment
36
+ settings = Hudson::Settings.new({})
37
+ settings.configuration.user = "test_user"
38
+ assert_equal "test_user", settings.configuration.user
39
+ end
40
+
41
+ def test_password_assignment
42
+ settings = Hudson::Settings.new({})
43
+ settings.configuration.password = "test_password"
44
+ assert_equal "test_password", settings.configuration.password
45
+ end
46
+
47
+ def test_version_assignment
48
+ settings = Hudson::Settings.new({})
49
+ settings.configuration.version = "test_version"
50
+ assert_equal "test_version", settings.configuration.version
51
+ end
52
+
53
+ def test_crumb_assignment
54
+ settings = Hudson::Settings.new({})
55
+ settings.configuration.crumb = "test_crumb"
56
+ assert_equal "test_crumb", settings.configuration.crumb
57
+ end
58
+
59
+ def test_proxy_host_assignment
60
+ settings = Hudson::Settings.new({})
61
+ settings.configuration.proxy_host = "http://test.com"
62
+ assert_equal "http://test.com", settings.configuration.proxy_host
63
+ end
64
+
65
+ def test_url_assignment
66
+ settings = Hudson::Settings.new({})
67
+ settings.configuration.proxy_port = "12345"
68
+ assert_equal "12345", settings.configuration.proxy_port
69
+ end
70
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jenkins-remote-api_1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Dru Ibarra
8
+ - Armen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2017-07-31 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Connect to Jenkins's remote web API
15
+ email:
16
+ - Druwerd@gmail.com
17
+ - armen0089@gmail.com
18
+ executables: []
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - ".gitignore"
23
+ - Gemfile
24
+ - Gemfile.lock
25
+ - LICENSE
26
+ - README.md
27
+ - Rakefile
28
+ - fixtures/vcr_cassettes/TestHudsonBuildQueue_test_list.yml
29
+ - fixtures/vcr_cassettes/TestHudsonBuild_setup.yml
30
+ - fixtures/vcr_cassettes/TestHudsonBuild_test_build_info.yml
31
+ - fixtures/vcr_cassettes/TestHudsonClient_test_build_job_.yml
32
+ - fixtures/vcr_cassettes/TestHudsonClient_test_build_job_with_parameters_.yml
33
+ - fixtures/vcr_cassettes/TestHudsonClient_test_build_queue_info.yml
34
+ - fixtures/vcr_cassettes/TestHudsonClient_test_create_item_.yml
35
+ - fixtures/vcr_cassettes/TestHudsonClient_test_delete_job_.yml
36
+ - fixtures/vcr_cassettes/TestHudsonClient_test_job_build_info.yml
37
+ - fixtures/vcr_cassettes/TestHudsonClient_test_job_config_info.yml
38
+ - fixtures/vcr_cassettes/TestHudsonJob_test_build.yml
39
+ - fixtures/vcr_cassettes/TestHudsonJob_test_build_with_params.yml
40
+ - fixtures/vcr_cassettes/TestHudsonJob_test_builds_list.yml
41
+ - fixtures/vcr_cassettes/TestHudsonJob_test_copy.yml
42
+ - fixtures/vcr_cassettes/TestHudsonJob_test_create.yml
43
+ - fixtures/vcr_cassettes/TestHudsonJob_test_desc_update.yml
44
+ - fixtures/vcr_cassettes/TestHudsonJob_test_get.yml
45
+ - fixtures/vcr_cassettes/TestHudsonJob_test_job_with_spaces.yml
46
+ - fixtures/vcr_cassettes/TestHudsonJob_test_list.yml
47
+ - fixtures/vcr_cassettes/TestHudsonJob_test_list_active.yml
48
+ - fixtures/vcr_cassettes/TestHudsonJob_test_new.yml
49
+ - fixtures/vcr_cassettes/TestHudsonJob_test_scm_url.yml
50
+ - fixtures/vcr_cassettes/TestHudsonJob_test_triggers_delete.yml
51
+ - fixtures/vcr_cassettes/TestHudsonJob_test_triggers_set.yml
52
+ - fixtures/vcr_cassettes/TestHudsonJob_test_triggers_set_using_shortcut.yml
53
+ - fixtures/vcr_cassettes/TestHudsonJob_test_url.yml
54
+ - fixtures/vcr_cassettes/TestHudsonJob_test_wipe_out_workspace.yml
55
+ - jenkins-remote-api_1.gemspec
56
+ - lib/jenkins-remote-api_1.rb
57
+ - lib/jenkins-remote-api_1/build.rb
58
+ - lib/jenkins-remote-api_1/build_queue.rb
59
+ - lib/jenkins-remote-api_1/client.rb
60
+ - lib/jenkins-remote-api_1/errors.rb
61
+ - lib/jenkins-remote-api_1/hudson_xml_api.rb
62
+ - lib/jenkins-remote-api_1/job.rb
63
+ - lib/jenkins-remote-api_1/multicast.rb
64
+ - lib/jenkins-remote-api_1/new_job_config.xml
65
+ - lib/jenkins-remote-api_1/parser/build_info.rb
66
+ - lib/jenkins-remote-api_1/parser/build_queue_info.rb
67
+ - lib/jenkins-remote-api_1/parser/job_config_info.rb
68
+ - lib/jenkins-remote-api_1/parser/job_info.rb
69
+ - lib/jenkins-remote-api_1/parser/multicast.rb
70
+ - lib/jenkins-remote-api_1/parser/server_info.rb
71
+ - lib/jenkins-remote-api_1/settings.rb
72
+ - lib/jenkins-remote-api_1/version.rb
73
+ - lib/jenkins-remote-api_1/xml_writer/job_config_info.rb
74
+ - test/test_helper.rb
75
+ - test/test_hudson_build.rb
76
+ - test/test_hudson_build_queue.rb
77
+ - test/test_hudson_client.rb
78
+ - test/test_hudson_job.rb
79
+ - test/test_hudson_multicast.rb
80
+ - test/test_hudson_settings.rb
81
+ homepage: ''
82
+ licenses: []
83
+ metadata: {}
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubyforge_project: jenkins-remote-api_1
100
+ rubygems_version: 2.5.1
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: Connect to Jenkins's remote web API
104
+ test_files:
105
+ - test/test_helper.rb
106
+ - test/test_hudson_build.rb
107
+ - test/test_hudson_build_queue.rb
108
+ - test/test_hudson_client.rb
109
+ - test/test_hudson_job.rb
110
+ - test/test_hudson_multicast.rb
111
+ - test/test_hudson_settings.rb
112
+ has_rdoc: