build_eval 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +8 -8
  2. data/lib/build_eval/monitor/server.rb +6 -3
  3. data/lib/build_eval/result/build_result.rb +15 -7
  4. data/lib/build_eval/result/status.rb +7 -6
  5. data/lib/build_eval/server/decorator.rb +5 -5
  6. data/lib/build_eval/server/jenkins.rb +2 -2
  7. data/lib/build_eval/server/team_city.rb +4 -3
  8. data/lib/build_eval/server/travis.rb +5 -3
  9. data/lib/build_eval/server/travis_pro.rb +6 -3
  10. data/lib/build_eval/travis/session/factory.rb +31 -0
  11. data/lib/build_eval/travis/session/pool.rb +44 -0
  12. data/lib/build_eval/travis/session/session.rb +18 -0
  13. data/lib/build_eval/travis/session.rb +14 -0
  14. data/lib/build_eval/travis.rb +9 -3
  15. data/lib/build_eval/version.rb +1 -1
  16. data/lib/build_eval.rb +4 -1
  17. data/spec/lib/build_eval/monitor/composite_spec.rb +1 -0
  18. data/spec/lib/build_eval/monitor/server_spec.rb +14 -6
  19. data/spec/lib/build_eval/result/build_result_spec.rb +42 -13
  20. data/spec/lib/build_eval/result/status_spec.rb +19 -6
  21. data/spec/lib/build_eval/server/decorator_spec.rb +21 -14
  22. data/spec/lib/build_eval/server/jenkins_integration_spec.rb +4 -3
  23. data/spec/lib/build_eval/server/jenkins_spec.rb +2 -1
  24. data/spec/lib/build_eval/server/team_city_integration_spec.rb +2 -1
  25. data/spec/lib/build_eval/server/team_city_spec.rb +2 -1
  26. data/spec/lib/build_eval/server/travis_pro_spec.rb +11 -6
  27. data/spec/lib/build_eval/server/travis_spec.rb +11 -6
  28. data/spec/lib/build_eval/travis/session/factory_spec.rb +85 -0
  29. data/spec/lib/build_eval/travis/session/pool_spec.rb +89 -0
  30. data/spec/lib/build_eval/travis/session/session_spec.rb +24 -0
  31. data/spec/lib/build_eval/travis/session_spec.rb +65 -0
  32. data/spec/lib/build_eval/travis_spec.rb +75 -50
  33. data/spec/lib/build_eval_smoke_spec.rb +4 -3
  34. metadata +18 -9
  35. data/lib/build_eval/travis/session_factory.rb +0 -38
  36. data/spec/lib/build_eval/travis/session_factory_spec.rb +0 -105
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build_eval
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ueckerman
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-06-24 00:00:00.000000000 Z
13
+ date: 2016-06-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -74,14 +74,14 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: '0.40'
77
+ version: '0.41'
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - ~>
83
83
  - !ruby/object:Gem::Version
84
- version: '0.40'
84
+ version: '0.41'
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: rspec
87
87
  requirement: !ruby/object:Gem::Requirement
@@ -130,14 +130,14 @@ dependencies:
130
130
  requirements:
131
131
  - - ~>
132
132
  - !ruby/object:Gem::Version
133
- version: '0.5'
133
+ version: '0.6'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - ~>
139
139
  - !ruby/object:Gem::Version
140
- version: '0.5'
140
+ version: '0.6'
141
141
  description: Evaluates the effective status of continuous integration builds. Useful
142
142
  for subsequent display on information radiators.
143
143
  email: matthew.ueckerman@myob.com
@@ -163,7 +163,10 @@ files:
163
163
  - ./lib/build_eval/server/travis.rb
164
164
  - ./lib/build_eval/server/travis_pro.rb
165
165
  - ./lib/build_eval/travis.rb
166
- - ./lib/build_eval/travis/session_factory.rb
166
+ - ./lib/build_eval/travis/session.rb
167
+ - ./lib/build_eval/travis/session/factory.rb
168
+ - ./lib/build_eval/travis/session/pool.rb
169
+ - ./lib/build_eval/travis/session/session.rb
167
170
  - ./lib/build_eval/version.rb
168
171
  - ./spec/lib/build_eval/error_spec.rb
169
172
  - ./spec/lib/build_eval/http_shared_context.rb
@@ -185,7 +188,10 @@ files:
185
188
  - ./spec/lib/build_eval/server/team_city_spec.rb
186
189
  - ./spec/lib/build_eval/server/travis_pro_spec.rb
187
190
  - ./spec/lib/build_eval/server/travis_spec.rb
188
- - ./spec/lib/build_eval/travis/session_factory_spec.rb
191
+ - ./spec/lib/build_eval/travis/session/factory_spec.rb
192
+ - ./spec/lib/build_eval/travis/session/pool_spec.rb
193
+ - ./spec/lib/build_eval/travis/session/session_spec.rb
194
+ - ./spec/lib/build_eval/travis/session_spec.rb
189
195
  - ./spec/lib/build_eval/travis_spec.rb
190
196
  - ./spec/lib/build_eval_smoke_spec.rb
191
197
  - ./spec/lib/build_eval_spec.rb
@@ -235,7 +241,10 @@ test_files:
235
241
  - ./spec/lib/build_eval/server/team_city_spec.rb
236
242
  - ./spec/lib/build_eval/server/travis_pro_spec.rb
237
243
  - ./spec/lib/build_eval/server/travis_spec.rb
238
- - ./spec/lib/build_eval/travis/session_factory_spec.rb
244
+ - ./spec/lib/build_eval/travis/session/factory_spec.rb
245
+ - ./spec/lib/build_eval/travis/session/pool_spec.rb
246
+ - ./spec/lib/build_eval/travis/session/session_spec.rb
247
+ - ./spec/lib/build_eval/travis/session_spec.rb
239
248
  - ./spec/lib/build_eval/travis_spec.rb
240
249
  - ./spec/lib/build_eval_smoke_spec.rb
241
250
  - ./spec/lib/build_eval_spec.rb
@@ -1,38 +0,0 @@
1
- module BuildEval
2
- module Travis
3
-
4
- class SessionFactory
5
-
6
- class << self
7
-
8
- def create(github_token)
9
- find_session(github_token) || create_session(github_token)
10
- end
11
-
12
- def clear_cache
13
- @sessions = {}
14
- end
15
-
16
- private
17
-
18
- def find_session(github_token)
19
- sessions[github_token].tap { |session| session.clear_cache if session }
20
- end
21
-
22
- def create_session(github_token)
23
- travis_uri = github_token ? ::Travis::Client::PRO_URI : ::Travis::Client::ORG_URI
24
- sessions[github_token] = ::Travis::Client::Session.new(uri: travis_uri, ssl: {}).tap do |session|
25
- session.github_auth(github_token) if github_token
26
- end
27
- end
28
-
29
- def sessions
30
- @sessions ||= {}
31
- end
32
-
33
- end
34
-
35
- end
36
-
37
- end
38
- end
@@ -1,105 +0,0 @@
1
- describe BuildEval::Travis::SessionFactory do
2
-
3
- describe "::create" do
4
-
5
- let(:github_token) { nil }
6
- let(:travis_session) { instance_double(::Travis::Client::Session) }
7
-
8
- subject { create_session }
9
-
10
- before(:example) { allow(::Travis::Client::Session).to receive(:new).and_return(travis_session) }
11
- after(:example) { described_class.clear_cache }
12
-
13
- shared_examples_for "a call creating a new session" do
14
-
15
- it "creates a Travis session with empty SSL settings to avoid using local security certificates" do
16
- expect(::Travis::Client::Session).to receive(:new).with(hash_including(ssl: {}))
17
-
18
- subject
19
- end
20
-
21
- it "returns the created session" do
22
- expect(subject).to eql(travis_session)
23
- end
24
-
25
- end
26
-
27
- context "when a session for the GitHub token has not been retrieved previously" do
28
-
29
- context "and a non-nil GitHub token is provided" do
30
-
31
- let(:github_token) { "SOMEGITHUBAUTHTOKEN" }
32
-
33
- before(:example) { allow(travis_session).to receive(:github_auth) }
34
-
35
- it_behaves_like "a call creating a new session"
36
-
37
- it "creates a Travis session connecting to the Travis Pro site" do
38
- expect(::Travis::Client::Session).to receive(:new).with(hash_including(uri: ::Travis::Client::PRO_URI))
39
-
40
- subject
41
- end
42
-
43
- it "logs-in using the provided GitHub token via the session" do
44
- expect(travis_session).to receive(:github_auth).with(github_token)
45
-
46
- subject
47
- end
48
-
49
- end
50
-
51
- context "and a nil GitHub token is provided" do
52
-
53
- let(:github_token) { nil }
54
-
55
- it_behaves_like "a call creating a new session"
56
-
57
- it "creates a Travis session connecting to the Travis Org site" do
58
- expect(::Travis::Client::Session).to receive(:new).with(hash_including(uri: ::Travis::Client::ORG_URI))
59
-
60
- subject
61
- end
62
-
63
- it "does not log-in" do
64
- expect(travis_session).to_not receive(:github_auth)
65
-
66
- subject
67
- end
68
-
69
- end
70
-
71
- end
72
-
73
- context "when a session for the GitHub token has been retrieved previously" do
74
-
75
- before(:example) do
76
- create_session
77
-
78
- allow(travis_session).to receive(:clear_cache)
79
- end
80
-
81
- it "does not create a new session" do
82
- expect(::Travis::Client::Session).to_not receive(:new)
83
-
84
- subject
85
- end
86
-
87
- it "clears the cache of the previously retrieved session to ensure no stale data is returned" do
88
- expect(travis_session).to receive(:clear_cache)
89
-
90
- subject
91
- end
92
-
93
- it "returns the previously retrieved session" do
94
- expect(subject).to eql(travis_session)
95
- end
96
-
97
- end
98
-
99
- def create_session
100
- described_class.create(github_token)
101
- end
102
-
103
- end
104
-
105
- end