knapsack 1.9.0 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 52112d867f2e7b5e6f3cdc4c314fdbbc161840aa
4
- data.tar.gz: 3e86872b9ccef2564ec99ab63a46b634c17ac9c5
3
+ metadata.gz: 04c056b1aca1e07b752f190165b9bf7d8b3d20c8
4
+ data.tar.gz: 4f6546493271a2edcfab8735e672b7966197b21e
5
5
  SHA512:
6
- metadata.gz: 3c77c58339d2caacaf9b5f49ab6b4cee405391c7665aeca22113316f2ca49380cc58ff0d42b49f54dc27b3b418a0a68f51141d1cc6a855ea2171af2cdc416554
7
- data.tar.gz: 899af246bf1d34d9cbedb4cabf8427d3bc001b2438e4a8d2d5b83104fb1210ffbf1b3377530bb1e3c31c7abd082703cc9dd4be05269bf791c9fc4c2efce2f09a
6
+ metadata.gz: 263a43a683b096a68c6a0f3bc3c88c63893383d46069c0753b75e6dca22907aaae3789a2cc19f86d29fc5a4a7007019b18014630930e348c12f77132fe3569d8
7
+ data.tar.gz: be3932dfa2720b181319501886dcdeef30f73add44616d445ab856faff125cf76bfee03cac6f2694430f3ca9931e0b9c56c55e8b52df791a721daf58bbd1fbf8
@@ -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
@@ -26,7 +26,10 @@ module Knapsack
26
26
 
27
27
  def bind_time_offset_warning
28
28
  ::Kernel.at_exit do
29
- Knapsack.logger.warn(Presenter.time_offset_warning)
29
+ Knapsack.logger.log(
30
+ Presenter.time_offset_log_level,
31
+ Presenter.time_offset_warning
32
+ )
30
33
  end
31
34
  end
32
35
 
@@ -37,7 +37,10 @@ module Knapsack
37
37
 
38
38
  def bind_time_offset_warning
39
39
  add_post_run_callback do
40
- Knapsack.logger.warn(Presenter.time_offset_warning)
40
+ Knapsack.logger.log(
41
+ Presenter.time_offset_log_level,
42
+ Presenter.time_offset_warning
43
+ )
41
44
  end
42
45
  end
43
46
 
@@ -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.warn(Presenter.time_offset_warning)
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
@@ -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
@@ -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}
@@ -1,3 +1,3 @@
1
1
  module Knapsack
2
- VERSION = '1.9.0'
2
+ VERSION = '1.10.0'
3
3
  end
@@ -12,7 +12,7 @@ describe Knapsack::Adapters::CucumberAdapter do
12
12
  let(:logger) { instance_double(Knapsack::Logger) }
13
13
 
14
14
  before do
15
- expect(Knapsack).to receive(:logger).and_return(logger)
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(logger).to receive(:warn).with(time_offset_warning)
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(logger).to receive(:warn).with(time_offset_warning)
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(logger).to receive(:warn).with(time_offset_warning)
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.9.0
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-05-20 00:00:00.000000000 Z
11
+ date: 2016-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake