build_eval 0.0.14 → 0.0.15

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 (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