travis-async-listener 1.8.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 (184) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +22 -0
  3. data/README.md +2486 -0
  4. data/Rakefile +63 -0
  5. data/assets/cacert.pem +69 -0
  6. data/assets/init/c.yml +4 -0
  7. data/assets/init/clojure.yml +1 -0
  8. data/assets/init/cpp.yml +4 -0
  9. data/assets/init/erlang.yml +3 -0
  10. data/assets/init/go.yml +4 -0
  11. data/assets/init/groovy.yml +1 -0
  12. data/assets/init/haskell.yml +1 -0
  13. data/assets/init/java.yml +4 -0
  14. data/assets/init/node_js.yml +4 -0
  15. data/assets/init/objective-c.yml +1 -0
  16. data/assets/init/perl.yml +4 -0
  17. data/assets/init/php.yml +4 -0
  18. data/assets/init/python.yml +5 -0
  19. data/assets/init/ruby.yml +6 -0
  20. data/assets/init/scala.yml +4 -0
  21. data/assets/notifications/Travis CI.app/Contents/Info.plist +52 -0
  22. data/assets/notifications/Travis CI.app/Contents/MacOS/Travis CI +0 -0
  23. data/assets/notifications/Travis CI.app/Contents/PkgInfo +1 -0
  24. data/assets/notifications/Travis CI.app/Contents/Resources/Travis CI.icns +0 -0
  25. data/assets/notifications/Travis CI.app/Contents/Resources/en.lproj/Credits.rtf +29 -0
  26. data/assets/notifications/Travis CI.app/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
  27. data/assets/notifications/Travis CI.app/Contents/Resources/en.lproj/MainMenu.nib +0 -0
  28. data/assets/notifications/Travis CI.app/Contents/_CodeSignature/CodeResources +173 -0
  29. data/assets/notifications/Travis CI.app/Contents/embedded.provisionprofile +0 -0
  30. data/assets/notifications/icon.png +0 -0
  31. data/assets/travis.sh +163 -0
  32. data/assets/travis.sh.erb +64 -0
  33. data/bin/travis +18 -0
  34. data/examples/org_overview.rb +3 -0
  35. data/examples/pro_auth.rb +23 -0
  36. data/examples/stream.rb +6 -0
  37. data/lib/travis.rb +8 -0
  38. data/lib/travis/auto_login.rb +3 -0
  39. data/lib/travis/cli.rb +126 -0
  40. data/lib/travis/cli/accounts.rb +31 -0
  41. data/lib/travis/cli/api_command.rb +180 -0
  42. data/lib/travis/cli/branches.rb +25 -0
  43. data/lib/travis/cli/cache.rb +76 -0
  44. data/lib/travis/cli/cancel.rb +18 -0
  45. data/lib/travis/cli/command.rb +422 -0
  46. data/lib/travis/cli/console.rb +31 -0
  47. data/lib/travis/cli/disable.rb +15 -0
  48. data/lib/travis/cli/enable.rb +31 -0
  49. data/lib/travis/cli/encrypt.rb +108 -0
  50. data/lib/travis/cli/encrypt_file.rb +140 -0
  51. data/lib/travis/cli/endpoint.rb +35 -0
  52. data/lib/travis/cli/env.rb +66 -0
  53. data/lib/travis/cli/help.rb +23 -0
  54. data/lib/travis/cli/history.rb +49 -0
  55. data/lib/travis/cli/init.rb +82 -0
  56. data/lib/travis/cli/lint.rb +49 -0
  57. data/lib/travis/cli/login.rb +76 -0
  58. data/lib/travis/cli/logout.rb +14 -0
  59. data/lib/travis/cli/logs.rb +65 -0
  60. data/lib/travis/cli/monitor.rb +110 -0
  61. data/lib/travis/cli/open.rb +39 -0
  62. data/lib/travis/cli/parser.rb +43 -0
  63. data/lib/travis/cli/pubkey.rb +30 -0
  64. data/lib/travis/cli/raw.rb +20 -0
  65. data/lib/travis/cli/repo_command.rb +154 -0
  66. data/lib/travis/cli/report.rb +101 -0
  67. data/lib/travis/cli/repos.rb +53 -0
  68. data/lib/travis/cli/requests.rb +47 -0
  69. data/lib/travis/cli/restart.rb +18 -0
  70. data/lib/travis/cli/settings.rb +77 -0
  71. data/lib/travis/cli/setup.rb +66 -0
  72. data/lib/travis/cli/setup/anynines.rb +21 -0
  73. data/lib/travis/cli/setup/appfog.rb +19 -0
  74. data/lib/travis/cli/setup/artifacts.rb +23 -0
  75. data/lib/travis/cli/setup/biicode.rb +19 -0
  76. data/lib/travis/cli/setup/cloud_66.rb +20 -0
  77. data/lib/travis/cli/setup/cloud_control.rb +21 -0
  78. data/lib/travis/cli/setup/cloud_files.rb +20 -0
  79. data/lib/travis/cli/setup/cloud_foundry.rb +23 -0
  80. data/lib/travis/cli/setup/code_deploy.rb +55 -0
  81. data/lib/travis/cli/setup/deis.rb +20 -0
  82. data/lib/travis/cli/setup/divshot.rb +18 -0
  83. data/lib/travis/cli/setup/elastic_beanstalk.rb +23 -0
  84. data/lib/travis/cli/setup/engine_yard.rb +24 -0
  85. data/lib/travis/cli/setup/gcs.rb +22 -0
  86. data/lib/travis/cli/setup/hackage.rb +18 -0
  87. data/lib/travis/cli/setup/heroku.rb +20 -0
  88. data/lib/travis/cli/setup/modulus.rb +18 -0
  89. data/lib/travis/cli/setup/ninefold.rb +20 -0
  90. data/lib/travis/cli/setup/nodejitsu.rb +27 -0
  91. data/lib/travis/cli/setup/npm.rb +20 -0
  92. data/lib/travis/cli/setup/open_shift.rb +20 -0
  93. data/lib/travis/cli/setup/opsworks.rb +22 -0
  94. data/lib/travis/cli/setup/pypi.rb +22 -0
  95. data/lib/travis/cli/setup/releases.rb +35 -0
  96. data/lib/travis/cli/setup/ruby_gems.rb +25 -0
  97. data/lib/travis/cli/setup/s3.rb +25 -0
  98. data/lib/travis/cli/setup/sauce_connect.rb +21 -0
  99. data/lib/travis/cli/setup/service.rb +73 -0
  100. data/lib/travis/cli/show.rb +69 -0
  101. data/lib/travis/cli/sshkey.rb +118 -0
  102. data/lib/travis/cli/status.rb +19 -0
  103. data/lib/travis/cli/sync.rb +30 -0
  104. data/lib/travis/cli/token.rb +14 -0
  105. data/lib/travis/cli/version.rb +17 -0
  106. data/lib/travis/cli/whatsup.rb +30 -0
  107. data/lib/travis/cli/whoami.rb +15 -0
  108. data/lib/travis/client.rb +39 -0
  109. data/lib/travis/client/account.rb +56 -0
  110. data/lib/travis/client/annotation.rb +21 -0
  111. data/lib/travis/client/artifact.rb +88 -0
  112. data/lib/travis/client/auto_login.rb +45 -0
  113. data/lib/travis/client/broadcast.rb +14 -0
  114. data/lib/travis/client/build.rb +47 -0
  115. data/lib/travis/client/cache.rb +25 -0
  116. data/lib/travis/client/commit.rb +28 -0
  117. data/lib/travis/client/entity.rb +238 -0
  118. data/lib/travis/client/env_var.rb +102 -0
  119. data/lib/travis/client/error.rb +38 -0
  120. data/lib/travis/client/has_uuid.rb +13 -0
  121. data/lib/travis/client/job.rb +61 -0
  122. data/lib/travis/client/lint_result.rb +25 -0
  123. data/lib/travis/client/listener.rb +184 -0
  124. data/lib/travis/client/methods.rb +104 -0
  125. data/lib/travis/client/namespace.rb +85 -0
  126. data/lib/travis/client/not_loadable.rb +13 -0
  127. data/lib/travis/client/repository.rb +224 -0
  128. data/lib/travis/client/request.rb +36 -0
  129. data/lib/travis/client/restartable.rb +23 -0
  130. data/lib/travis/client/session.rb +339 -0
  131. data/lib/travis/client/settings.rb +25 -0
  132. data/lib/travis/client/singleton_setting.rb +36 -0
  133. data/lib/travis/client/ssh_key.rb +11 -0
  134. data/lib/travis/client/states.rb +98 -0
  135. data/lib/travis/client/user.rb +67 -0
  136. data/lib/travis/client/weak_entity.rb +26 -0
  137. data/lib/travis/pro.rb +5 -0
  138. data/lib/travis/pro/auto_login.rb +3 -0
  139. data/lib/travis/tools/assets.rb +21 -0
  140. data/lib/travis/tools/completion.rb +54 -0
  141. data/lib/travis/tools/formatter.rb +50 -0
  142. data/lib/travis/tools/github.rb +279 -0
  143. data/lib/travis/tools/notification.rb +69 -0
  144. data/lib/travis/tools/safe_string.rb +22 -0
  145. data/lib/travis/tools/ssl_key.rb +48 -0
  146. data/lib/travis/tools/system.rb +88 -0
  147. data/lib/travis/version.rb +3 -0
  148. data/spec/cli/cancel_spec.rb +15 -0
  149. data/spec/cli/encrypt_spec.rb +43 -0
  150. data/spec/cli/endpoint_spec.rb +34 -0
  151. data/spec/cli/help_spec.rb +33 -0
  152. data/spec/cli/history_spec.rb +38 -0
  153. data/spec/cli/init_spec.rb +226 -0
  154. data/spec/cli/login_spec.rb +13 -0
  155. data/spec/cli/logs_spec.rb +8 -0
  156. data/spec/cli/open_spec.rb +33 -0
  157. data/spec/cli/repo_command_spec.rb +25 -0
  158. data/spec/cli/restart_spec.rb +15 -0
  159. data/spec/cli/setup_spec.rb +5 -0
  160. data/spec/cli/show_spec.rb +9 -0
  161. data/spec/cli/status_spec.rb +28 -0
  162. data/spec/cli/token_spec.rb +22 -0
  163. data/spec/cli/version_spec.rb +18 -0
  164. data/spec/cli/whoami_spec.rb +34 -0
  165. data/spec/client/account_spec.rb +32 -0
  166. data/spec/client/annotation_spec.rb +14 -0
  167. data/spec/client/broadcast_spec.rb +10 -0
  168. data/spec/client/build_spec.rb +31 -0
  169. data/spec/client/commit_spec.rb +22 -0
  170. data/spec/client/job_spec.rb +30 -0
  171. data/spec/client/methods_spec.rb +15 -0
  172. data/spec/client/namespace_spec.rb +19 -0
  173. data/spec/client/repository_spec.rb +39 -0
  174. data/spec/client/session_spec.rb +165 -0
  175. data/spec/client/user_spec.rb +16 -0
  176. data/spec/client_spec.rb +17 -0
  177. data/spec/pro_spec.rb +10 -0
  178. data/spec/spec_helper.rb +29 -0
  179. data/spec/support/fake_api.rb +738 -0
  180. data/spec/support/fake_github.rb +24 -0
  181. data/spec/support/helpers.rb +45 -0
  182. data/spec/travis_spec.rb +10 -0
  183. data/travis.gemspec +323 -0
  184. metadata +489 -0
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Login do
4
+ example "travis login", :unless => Travis::Tools::System.windows? do
5
+ run_cli('login', '-E', '--skip-token-check') { |i| i.puts('rkh', 'password') }.should be_success
6
+ run_cli('whoami').out.should be == "rkh\n"
7
+ end
8
+
9
+ example "travis login (with bad credentials)", :unless => Travis::Tools::System.windows? do
10
+ run_cli('login') { |i| i.puts('rkh', 'wrong password') }.should_not be_success
11
+ run_cli('whoami').should_not be_success
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Logs do
4
+ example 'logs 6180.1' do
5
+ run_cli('logs', '6180.1', '-E').should be_success
6
+ stdout.should be == "$ export GEM=railties\n"
7
+ end
8
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Open do
4
+ example 'travis open -p' do
5
+ run_cli('open', '-p').should be_success
6
+ stdout.should match(/https:\/\/travis-ci.org\/[\w\W]*\/travis\.rb/)
7
+ end
8
+
9
+ example 'travis open 6180 -p' do
10
+ run_cli('open', '6180', '-p').should be_success
11
+ stdout.should match(/https:\/\/travis-ci.org\/[\w\W]*\/travis\.rb\/builds\/4125095/)
12
+ end
13
+
14
+ example 'travis open 6180.1 -p' do
15
+ run_cli('open', '6180.1', '-p').should be_success
16
+ stdout.should match(/https:\/\/travis-ci.org\/[\w\W]*\/travis\.rb\/jobs\/4125096/)
17
+ end
18
+
19
+ example 'travis open -pg' do
20
+ run_cli('open', '-pg').should be_success
21
+ stdout.should match(/https:\/\/github.com\/[\w\W]*\/travis\.rb/)
22
+ end
23
+
24
+ example 'travis open 6180 -pg' do
25
+ run_cli('open', '6180', '-pg').should be_success
26
+ stdout.should be == "https://github.com/rails/rails/compare/6581d798e830...a0265b98f16c\n"
27
+ end
28
+
29
+ example 'travis open 6180.1 -pg' do
30
+ run_cli('open', '6180.1', '-pg').should be_success
31
+ stdout.should be == "https://github.com/rails/rails/compare/6581d798e830...a0265b98f16c\n"
32
+ end
33
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+ require 'uri'
3
+
4
+ describe Travis::CLI::RepoCommand do
5
+ describe '#parse_remote' do
6
+ it 'handles git@github.com URIs' do
7
+ path = subject.send(:parse_remote, 'git@github.com:travis-ci/travis.rb.git')
8
+ path.should be == '/travis-ci/travis.rb.git'
9
+ end
10
+
11
+ it 'handles GitHub Enterprise URIS' do
12
+ path = subject.send(:parse_remote, 'git@example.com:travis-ci/travis.rb.git')
13
+ path.should be == '/travis-ci/travis.rb.git'
14
+ end
15
+
16
+ it 'handles HTTPS URIs' do
17
+ path = subject.send(:parse_remote, 'https://github.com/travis-ci/travis.rb.git')
18
+ path.should be == '/travis-ci/travis.rb.git'
19
+ end
20
+
21
+ it 'raises URI::InvalidURIError for invalid URIs' do
22
+ expect { subject.send(:parse_remote, "foo@example.com:baz/bar.git") }.to raise_error(URI::InvalidURIError)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Restart do
4
+ example 'travis restart' do
5
+ run_cli('restart', '-t', 'token').should be_success
6
+ $params['build_id'].should be == "4125095"
7
+ $params['job_id'].should be_nil
8
+ end
9
+
10
+ example 'travis restart 6180.1' do
11
+ run_cli('restart', '6180.1', '-t', 'token').should be_success
12
+ $params['build_id'].should be_nil
13
+ $params['job_id'].should be == "4125096"
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Setup do
4
+ # TODO
5
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Show do
4
+ example 'show 6180.1' do
5
+ run_cli('show', '6180.1', '-E').should be_success
6
+ stdout.should include("Config: ")
7
+ stdout.should include("env: GEM=railties")
8
+ end
9
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Status do
4
+ example "travis status" do
5
+ run_cli('status').should be_success
6
+ stdout.should be == "failed\n"
7
+ end
8
+
9
+ example "travis status -x" do
10
+ run_cli('status', '-x').should_not be_success
11
+ stdout.should be == "failed\n"
12
+ end
13
+
14
+ example "travis status -q" do
15
+ run_cli('status', '-q').should be_success
16
+ stdout.should be_empty
17
+ end
18
+
19
+ example "travis status -pqx" do
20
+ run_cli('endpoint', '-pqx').should_not be_success
21
+ stdout.should be_empty
22
+ end
23
+
24
+ example "travis status -i" do
25
+ run_cli('status', '-i', '--skip-completion-check', '-r', 'travis-ci/travis.rb').should be_success
26
+ stdout.should be == "build #6180 failed\n"
27
+ end
28
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Token do
4
+ example "travis token (access token set)" do
5
+ run_cli('token', '-t', 'super-secret').should be_success
6
+ stdout.should == "super-secret\n"
7
+ stderr.should be_empty
8
+ end
9
+
10
+ example "travis token -i (access token set)" do
11
+ run_cli('token', '-it', 'super-secret').should be_success
12
+ stdout.should == "Your access token is super-secret\n"
13
+ stderr.should be_empty
14
+ end
15
+
16
+ example 'travis token (no access token set)' do
17
+ run_cli('token').should_not be_success
18
+
19
+ stdout.should be_empty
20
+ stderr.should == "not logged in, please run #{File.basename($0)} login\n"
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Version do
4
+ example do
5
+ run_cli('-v').should be_success
6
+ stdout.should be == "#{Travis::VERSION}\n"
7
+ end
8
+
9
+ example do
10
+ run_cli('--version').should be_success
11
+ stdout.should be == "#{Travis::VERSION}\n"
12
+ end
13
+
14
+ example do
15
+ run_cli('version').should be_success
16
+ stdout.should be == "#{Travis::VERSION}\n"
17
+ end
18
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::CLI::Whoami do
4
+ example "travis whoami" do
5
+ run_cli('whoami').should_not be_success
6
+ stdout.should be_empty
7
+ stderr.should be == "not logged in, please run #{File.basename $0} login\n"
8
+ end
9
+
10
+ example "travis whoami --pro" do
11
+ run_cli('whoami', '--pro').should_not be_success
12
+ stdout.should be_empty
13
+ stderr.should be == "not logged in, please run #{File.basename $0} login --pro\n"
14
+ end
15
+
16
+ example "travis whoami -t token" do
17
+ run_cli('whoami', '-t', 'token').should be_success
18
+ stdout.should be == "rkh\n"
19
+ stderr.should be_empty
20
+ end
21
+
22
+ example "TRAVIS_TOKEN=token travis whoami" do
23
+ ENV['TRAVIS_TOKEN'] = 'token'
24
+ run_cli('whoami').should be_success
25
+ stdout.should be == "rkh\n"
26
+ stderr.should be_empty
27
+ end
28
+
29
+ example "travis whoami -t token -i" do
30
+ run_cli('whoami', '-t', 'token', '-i').should be_success
31
+ stdout.should be == "You are rkh (Konstantin Haase)\n"
32
+ stderr.should be_empty
33
+ end
34
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Account do
4
+ context "from all accounts" do
5
+ let(:session) { Travis::Client.new }
6
+ subject { session.accounts.first }
7
+ its(:name) { should be == 'Konstantin Haase' }
8
+ its(:login) { should be == 'rkh' }
9
+ its(:type) { should be == 'user' }
10
+ its(:repos_count) { should be == 200 }
11
+ its(:inspect) { should be == "#<Travis::Client::Account: rkh>" }
12
+ end
13
+
14
+ context "known account" do
15
+ let(:session) { Travis::Client.new }
16
+ subject { session.account('rkh') }
17
+ its(:name) { should be == 'Konstantin Haase' }
18
+ its(:login) { should be == 'rkh' }
19
+ its(:type) { should be == 'user' }
20
+ its(:repos_count) { should be == 200 }
21
+ its(:inspect) { should be == "#<Travis::Client::Account: rkh>" }
22
+ end
23
+
24
+ context "known account" do
25
+ let(:session) { Travis::Client.new }
26
+ subject { session.account('foo') }
27
+ its(:name) { should be_nil }
28
+ its(:login) { should be == 'foo' }
29
+ its(:type) { should be_nil }
30
+ its(:inspect) { should be == "#<Travis::Client::Account: foo>" }
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Annotation do
4
+ let(:session) { Travis::Client.new }
5
+ let(:job) { session.job(4125097) }
6
+ subject { job.annotations.first }
7
+ its(:id) { should be == 1 }
8
+ its(:description) { should be == "The job passed." }
9
+ its(:provider_name) { should be == "Travis CI" }
10
+ its(:url) { should be == "https://travis-ci.org/rails/rails/jobs/4125097" }
11
+ its(:status) { should be == '' }
12
+
13
+ it { should be == subject.job.annotations.first }
14
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Broadcast do
4
+ let(:session) { Travis::Client.new }
5
+ subject { session.broadcasts.first }
6
+
7
+ its(:id) { should be == 1 }
8
+ its(:message) { should be == "Hello!" }
9
+
10
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Build do
4
+ let(:session) { Travis::Client.new }
5
+ subject { session.build(4125095) }
6
+ its(:number) { should be == '6180' }
7
+ its(:state) { should be == 'failed' }
8
+ its(:duration) { should be == 5019 }
9
+ its(:started_at) { should be_a(Time) }
10
+ its(:finished_at) { should be_nil }
11
+ its(:inspect) { should be == "#<Travis::Client::Build: rails/rails#6180>" }
12
+ its(:color) { should be == 'red' }
13
+ its(:commit) { should be_a(Travis::Client::Commit) }
14
+ its(:jobs) { should be_an(Array) }
15
+ its(:repository) { should be == session.repo('rails/rails') }
16
+
17
+ it { should be == subject.repository.last_build }
18
+
19
+ it { should_not be_pending }
20
+ it { should be_started }
21
+ it { should be_finished }
22
+ it { should_not be_passed }
23
+ it { should_not be_errored }
24
+ it { should be_failed }
25
+ it { should_not be_canceled }
26
+ it { should be_created }
27
+ it { should be_red }
28
+ it { should_not be_green }
29
+ it { should_not be_yellow }
30
+ it { should be_unsuccessful }
31
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Build do
4
+ let(:session) { Travis::Client.new }
5
+ subject { session.build(4125095).commit }
6
+
7
+ its(:sha) { should be == 'a0265b98f16c6e33be32aa3f57231d1189302400' }
8
+ its(:short_sha) { should be == 'a0265b9' }
9
+ its(:branch) { should be == 'master' }
10
+ its(:message) { should be == 'Associaton -> Association' }
11
+ its(:committed_at) { should be_a(Time) }
12
+ its(:author_name) { should be == 'Steve Klabnik' }
13
+ its(:author_email) { should be == 'steve@steveklabnik.com' }
14
+ its(:committer_name) { should be == 'Steve Klabnik' }
15
+ its(:committer_email) { should be == 'steve@steveklabnik.com' }
16
+ its(:compare_url) { should be == 'https://github.com/rails/rails/compare/6581d798e830...a0265b98f16c' }
17
+ its(:subject) { should be == 'Associaton -> Association' }
18
+
19
+ specify "with missing data" do
20
+ session.load("commit" => { "id" => 12 })['commit'].subject.should be_empty
21
+ end
22
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Job do
4
+ let(:session) { Travis::Client.new }
5
+ subject { session.job(4125097) }
6
+ its(:number) { should be == '6180.2' }
7
+ its(:state) { should be == 'passed' }
8
+ its(:started_at) { should be_a(Time) }
9
+ its(:finished_at) { should be_a(Time) }
10
+ its(:inspect) { should be == "#<Travis::Client::Job: rails/rails#6180.2>" }
11
+ its(:color) { should be == 'green' }
12
+ its(:commit) { should be_a(Travis::Client::Commit) }
13
+ its(:repository) { should be == session.repo('rails/rails') }
14
+ its(:duration) { should be == 905 }
15
+
16
+ it { should be == subject.build.jobs[1] }
17
+
18
+ it { should_not be_pending }
19
+ it { should be_started }
20
+ it { should be_finished }
21
+ it { should be_passed }
22
+ it { should_not be_errored }
23
+ it { should_not be_failed }
24
+ it { should_not be_canceled }
25
+ it { should be_created }
26
+ it { should_not be_red }
27
+ it { should be_green }
28
+ it { should_not be_yellow }
29
+ it { should_not be_unsuccessful }
30
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Methods do
4
+ let(:session) { Travis::Client.new }
5
+ subject { OpenStruct.new(:session => session).extend(Travis::Client::Methods) }
6
+ before { subject.access_token = 'token' }
7
+
8
+ its(:api_endpoint) { should be == 'https://api.travis-ci.org/' }
9
+ its(:repos) { should be == session.find_many(Travis::Client::Repository) }
10
+ its(:user) { should be == session.find_one(Travis::Client::User) }
11
+
12
+ it 'fetches a single repo' do
13
+ subject.repo(891).slug.should be == 'rails/rails'
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Namespace do
4
+ it { should be_a(Travis::Client::Methods) }
5
+
6
+ it 'creates a dummy for repos' do
7
+ repo = subject::Repository
8
+ repo.find_one('rails/rails').should be_a(Travis::Client::Repository)
9
+ repo.find_many.should be_an(Array)
10
+ repo.current.should be == repo.find_many
11
+ end
12
+
13
+ it 'creates a dummy for user' do
14
+ subject.access_token = 'token'
15
+ user = subject::User
16
+ user.find_one.should be_a(Travis::Client::User)
17
+ user.current.should be == user.find_one
18
+ end
19
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe Travis::Client::Repository do
4
+ let(:session) { Travis::Client.new }
5
+ subject { session.repo('rails/rails') }
6
+
7
+ its(:slug) { should be == 'rails/rails' }
8
+ its(:description) { should_not be_empty }
9
+ its(:last_build_id) { should be == 4125095 }
10
+ its(:last_build_number) { should be == '6180' }
11
+ its(:last_build_state) { should be == 'failed' }
12
+ its(:last_build_duration) { should be == 5019 }
13
+ its(:last_build_started_at) { should be_a(Time) }
14
+ its(:last_build_finished_at) { should be_nil }
15
+ its(:inspect) { should be == "#<Travis::Client::Repository: rails/rails>" }
16
+ its(:key) { should be_a(Travis::Client::Repository::Key) }
17
+ its(:last_build) { should be_a(Travis::Client::Build) }
18
+ its(:color) { should be == 'red' }
19
+ its(:github_language) { should be == 'Ruby' }
20
+ its(:owner_name) { should be == 'rails' }
21
+ its(:owner) { should be == session.account("rails") }
22
+
23
+ it { should_not be_pending }
24
+ it { should be_started }
25
+ it { should be_finished }
26
+ it { should_not be_passed }
27
+ it { should_not be_errored }
28
+ it { should be_failed }
29
+ it { should_not be_canceled }
30
+ it { should be_created }
31
+ it { should be_red }
32
+ it { should_not be_green }
33
+ it { should_not be_yellow }
34
+ it { should be_unsuccessful }
35
+
36
+ it 'should expose the pubkey fingerprint' do
37
+ subject.public_key.fingerprint.should be == 'foobar'
38
+ end
39
+ end