knapsack 1.9.0 → 1.10.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/knapsack/adapters/cucumber_adapter.rb +4 -1
- data/lib/knapsack/adapters/minitest_adapter.rb +4 -1
- data/lib/knapsack/adapters/rspec_adapter.rb +4 -1
- data/lib/knapsack/logger.rb +14 -0
- data/lib/knapsack/presenter.rb +8 -0
- data/lib/knapsack/version.rb +1 -1
- data/spec/knapsack/adapters/cucumber_adapter_spec.rb +5 -3
- data/spec/knapsack/adapters/minitest_adapter_spec.rb +4 -2
- data/spec/knapsack/adapters/rspec_adapter_spec.rb +4 -2
- data/spec/knapsack/logger_spec.rb +21 -0
- data/spec/knapsack/presenter_spec.rb +23 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04c056b1aca1e07b752f190165b9bf7d8b3d20c8
|
4
|
+
data.tar.gz: 4f6546493271a2edcfab8735e672b7966197b21e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 263a43a683b096a68c6a0f3bc3c88c63893383d46069c0753b75e6dca22907aaae3789a2cc19f86d29fc5a4a7007019b18014630930e348c12f77132fe3569d8
|
7
|
+
data.tar.gz: be3932dfa2720b181319501886dcdeef30f73add44616d445ab856faff125cf76bfee03cac6f2694430f3ca9931e0b9c56c55e8b52df791a721daf58bbd1fbf8
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
* TODO
|
4
4
|
|
5
|
+
### 1.10.0
|
6
|
+
|
7
|
+
* Log the time offset warning at INFO if time not exceeded
|
8
|
+
|
9
|
+
https://github.com/ArturT/knapsack/pull/40
|
10
|
+
|
11
|
+
https://github.com/ArturT/knapsack/compare/v1.9.0...v1.10.0
|
12
|
+
|
5
13
|
### 1.9.0
|
6
14
|
|
7
15
|
* Use Knapsack.logger for runner output
|
@@ -39,7 +39,10 @@ module Knapsack
|
|
39
39
|
def bind_time_offset_warning
|
40
40
|
::RSpec.configure do |config|
|
41
41
|
config.after(:suite) do
|
42
|
-
Knapsack.logger.
|
42
|
+
Knapsack.logger.log(
|
43
|
+
Presenter.time_offset_log_level,
|
44
|
+
Presenter.time_offset_warning
|
45
|
+
)
|
43
46
|
end
|
44
47
|
end
|
45
48
|
end
|
data/lib/knapsack/logger.rb
CHANGED
@@ -6,6 +6,20 @@ module Knapsack
|
|
6
6
|
INFO = 1
|
7
7
|
WARN = 2
|
8
8
|
|
9
|
+
UnknownLogLevel = Class.new(StandardError)
|
10
|
+
|
11
|
+
def log(level, text=nil)
|
12
|
+
level_method =
|
13
|
+
case level
|
14
|
+
when DEBUG then :debug
|
15
|
+
when INFO then :info
|
16
|
+
when WARN then :warn
|
17
|
+
else raise UnknownLogLevel
|
18
|
+
end
|
19
|
+
|
20
|
+
public_send(level_method, text)
|
21
|
+
end
|
22
|
+
|
9
23
|
def debug(text=nil)
|
10
24
|
return if level != DEBUG
|
11
25
|
puts text
|
data/lib/knapsack/presenter.rb
CHANGED
@@ -35,6 +35,14 @@ module Knapsack
|
|
35
35
|
"Exceeded time: #{exceeded_time}"
|
36
36
|
end
|
37
37
|
|
38
|
+
def time_offset_log_level
|
39
|
+
if Knapsack.tracker.time_exceeded?
|
40
|
+
Knapsack::Logger::WARN
|
41
|
+
else
|
42
|
+
Knapsack::Logger::INFO
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
38
46
|
def time_offset_warning
|
39
47
|
str = %{\n========= Knapsack Time Offset Warning ==========
|
40
48
|
#{Presenter.time_offset}
|
data/lib/knapsack/version.rb
CHANGED
@@ -12,7 +12,7 @@ describe Knapsack::Adapters::CucumberAdapter do
|
|
12
12
|
let(:logger) { instance_double(Knapsack::Logger) }
|
13
13
|
|
14
14
|
before do
|
15
|
-
|
15
|
+
allow(Knapsack).to receive(:logger).and_return(logger)
|
16
16
|
end
|
17
17
|
|
18
18
|
describe '#bind_time_tracker' do
|
@@ -83,11 +83,13 @@ describe Knapsack::Adapters::CucumberAdapter do
|
|
83
83
|
|
84
84
|
describe '#bind_time_offset_warning' do
|
85
85
|
let(:time_offset_warning) { 'Time offset warning' }
|
86
|
+
let(:log_level) { :info }
|
86
87
|
|
87
|
-
it do
|
88
|
+
it 'creates an at-exit callback to log the time offset message at the specified log level' do
|
88
89
|
expect(::Kernel).to receive(:at_exit).and_yield
|
89
90
|
expect(Knapsack::Presenter).to receive(:time_offset_warning).and_return(time_offset_warning)
|
90
|
-
expect(
|
91
|
+
expect(Knapsack::Presenter).to receive(:time_offset_log_level).and_return(log_level)
|
92
|
+
expect(logger).to receive(:log).with(log_level, time_offset_warning)
|
91
93
|
|
92
94
|
subject.bind_time_offset_warning
|
93
95
|
end
|
@@ -74,12 +74,14 @@ describe Knapsack::Adapters::MinitestAdapter do
|
|
74
74
|
|
75
75
|
describe '#bind_time_offset_warning' do
|
76
76
|
let(:time_offset_warning) { 'Time offset warning' }
|
77
|
+
let(:log_level) { :info }
|
77
78
|
|
78
|
-
it do
|
79
|
+
it 'creates a post-run callback to log the time offset message at the specified log level' do
|
79
80
|
expect(::Minitest).to receive(:after_run).and_yield
|
80
81
|
|
81
82
|
expect(Knapsack::Presenter).to receive(:time_offset_warning).and_return(time_offset_warning)
|
82
|
-
expect(
|
83
|
+
expect(Knapsack::Presenter).to receive(:time_offset_log_level).and_return(log_level)
|
84
|
+
expect(logger).to receive(:log).with(log_level, time_offset_warning)
|
83
85
|
|
84
86
|
subject.bind_time_offset_warning
|
85
87
|
end
|
@@ -65,13 +65,15 @@ describe Knapsack::Adapters::RSpecAdapter do
|
|
65
65
|
|
66
66
|
describe '#bind_time_offset_warning' do
|
67
67
|
let(:time_offset_warning) { 'Time offset warning' }
|
68
|
+
let(:log_level) { :info }
|
68
69
|
|
69
|
-
it do
|
70
|
+
it 'creates a post-suite callback to log the time offset message at the specified log level' do
|
70
71
|
expect(config).to receive(:after).with(:suite).and_yield
|
71
72
|
expect(::RSpec).to receive(:configure).and_yield(config)
|
72
73
|
|
73
74
|
expect(Knapsack::Presenter).to receive(:time_offset_warning).and_return(time_offset_warning)
|
74
|
-
expect(
|
75
|
+
expect(Knapsack::Presenter).to receive(:time_offset_log_level).and_return(log_level)
|
76
|
+
expect(logger).to receive(:log).with(log_level, time_offset_warning)
|
75
77
|
|
76
78
|
subject.bind_time_offset_warning
|
77
79
|
end
|
@@ -57,4 +57,25 @@ describe Knapsack::Logger do
|
|
57
57
|
it { expect { subject.warn(text) }.to output(/#{text}/).to_stdout }
|
58
58
|
end
|
59
59
|
end
|
60
|
+
|
61
|
+
describe '#log' do
|
62
|
+
let(:log_level) { Knapsack::Logger::INFO }
|
63
|
+
let(:log_message) { 'log-message' }
|
64
|
+
|
65
|
+
it 'delegates to the method matching the specified log level' do
|
66
|
+
expect(subject).to receive(:info).with(log_message)
|
67
|
+
|
68
|
+
subject.log(log_level, log_message)
|
69
|
+
end
|
70
|
+
|
71
|
+
context 'when the log level is unknown' do
|
72
|
+
let(:log_level) { 5 }
|
73
|
+
|
74
|
+
it 'raises an UnknownLogLevel error' do
|
75
|
+
expect {
|
76
|
+
subject.log(log_level, log_message)
|
77
|
+
}.to raise_error Knapsack::Logger::UnknownLogLevel
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
60
81
|
end
|
@@ -45,6 +45,29 @@ describe Knapsack::Presenter do
|
|
45
45
|
it { should eql "Knapsack report was generated. Preview:\n{}" }
|
46
46
|
end
|
47
47
|
|
48
|
+
describe '.time_offset_log_level' do
|
49
|
+
before do
|
50
|
+
allow(Knapsack).to receive(:tracker) { tracker }
|
51
|
+
allow(tracker).to receive(:time_exceeded?).and_return(time_exceeded)
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'when the time offset is exceeded' do
|
55
|
+
let(:time_exceeded) { true }
|
56
|
+
|
57
|
+
it 'returns a WARN log level' do
|
58
|
+
expect(described_class.time_offset_log_level).to eq(Knapsack::Logger::WARN)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'when the time offset is not exceeded' do
|
63
|
+
let(:time_exceeded) { false }
|
64
|
+
|
65
|
+
it 'returns an INFO log level' do
|
66
|
+
expect(described_class.time_offset_log_level).to eq(Knapsack::Logger::INFO)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
48
71
|
describe '.time_offset_warning' do
|
49
72
|
let(:time_offset_in_seconds) { 30 }
|
50
73
|
let(:max_node_time_execution) { 60 }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knapsack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ArturT
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|