rspec-retry 0.5.7 → 0.6.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
  SHA256:
3
- metadata.gz: f9495b2b80997f741d94f1c3363417fb7b57fb153427308920aa2bc740524654
4
- data.tar.gz: d4d0a79478c5fc34d26417d4da28e56b5c7cf216251499228334ca18b4633979
3
+ metadata.gz: 5bf1468afddcf01b5636087d6a3d439a36a6a8df9c8101215b397bc2bc5684d5
4
+ data.tar.gz: 13a446f999361c54a86a5db02ef65893cacad2e80c553bc9bb173a09961c3fd5
5
5
  SHA512:
6
- metadata.gz: cac40d871b44e8cebbf8cfef993902d3e58522181a3751009609b9eb6b6acb3ae063ca547d1a5bc1ef6cd857916bfc44bb2ff58ae437728b95c6c86c8a3cd0e7
7
- data.tar.gz: e67751467ae5fd1afd2a99160cb550e594d7cd432ed14f7395d0780794e649c0ad2f41600b201b6da30aa2764ade1c55ebfccd2f4e0493f39350ba57e76c4749
6
+ metadata.gz: fac97737f2346315e373ac932f26442652b32a30dac92eae08edb65053aaad2a0155b0a2043b070c56639487fa0cdea7d15e0ec26e0f80b355a4c439fb6c8b6f
7
+ data.tar.gz: 4a75f75b96fac155424b490ae39d252d0d819cc8f45c5e5e6108b6b1ed002bf0fdff159929ee68aa7af113420d69b02bce5c40a6ed5cf6f0cc7b4354f31c3dde
data/README.md CHANGED
@@ -8,8 +8,8 @@ specified number of times until the example succeeds.
8
8
 
9
9
  | Rspec Version | Rspec-Retry Version |
10
10
  |---------------|---------------------|
11
- | > 3.8 | 0.5.7 but untested |
12
- | > 3.3, <= 3.8 | 0.5.7             |
11
+ | > 3.8 | 0.6.0 but untested |
12
+ | > 3.3, <= 3.8 | 0.6.0             |
13
13
  | 3.2       | 0.4.6             |
14
14
  | 2.14.8       | 0.4.4             |
15
15
 
@@ -17,7 +17,9 @@ specified number of times until the example succeeds.
17
17
 
18
18
  Add this line to your application's Gemfile:
19
19
 
20
- gem 'rspec-retry'
20
+ ```ruby
21
+ gem 'rspec-retry', group: :test # Unlike rspec, this doesn't need to be included in development group
22
+ ```
21
23
 
22
24
  And then execute:
23
25
 
data/changelog.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 0.6.0 - 2018-05-15
2
+ ## enhancements
3
+ add exponential backoff option (thanks @patveith, @thedrow / #91, #94, #95)
4
+ better documentation (thanks @swrobel / #90)
5
+
1
6
  # 0.5.7 - 2018-03-13
2
7
  ## enhancements
3
8
  remove <3.8 constraint on rspec-core to prevent breaking when rspec-core upgrades (thanks @dthorsen / #89)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- rspec-retry (0.5.7)
4
+ rspec-retry (0.6.0)
5
5
  rspec-core (> 3.3)
6
6
 
7
7
  GEM
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- rspec-retry (0.5.7)
4
+ rspec-retry (0.6.0)
5
5
  rspec-core (> 3.3)
6
6
 
7
7
  GEM
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- rspec-retry (0.5.7)
4
+ rspec-retry (0.6.0)
5
5
  rspec-core (> 3.3)
6
6
 
7
7
  GEM
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- rspec-retry (0.5.7)
4
+ rspec-retry (0.6.0)
5
5
  rspec-core (> 3.3)
6
6
 
7
7
  GEM
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- rspec-retry (0.5.7)
4
+ rspec-retry (0.6.0)
5
5
  rspec-core (> 3.3)
6
6
 
7
7
  GEM
data/lib/rspec/retry.rb CHANGED
@@ -9,6 +9,7 @@ module RSpec
9
9
  config.add_setting :verbose_retry, :default => false
10
10
  config.add_setting :default_retry_count, :default => 1
11
11
  config.add_setting :default_sleep_interval, :default => 0
12
+ config.add_setting :exponential_backoff, :default => false
12
13
  config.add_setting :clear_lets_on_failure, :default => true
13
14
  config.add_setting :display_try_failure_messages, :default => false
14
15
 
@@ -76,8 +77,12 @@ module RSpec
76
77
  end
77
78
 
78
79
  def sleep_interval
79
- ex.metadata[:retry_wait] ||
80
- RSpec.configuration.default_sleep_interval
80
+ if ex.metadata[:exponential_backoff]
81
+ 2**(current_example.attempts-1) * ex.metadata[:retry_wait]
82
+ else
83
+ ex.metadata[:retry_wait] ||
84
+ RSpec.configuration.default_sleep_interval
85
+ end
81
86
  end
82
87
 
83
88
  def exceptions_to_hard_fail
@@ -149,7 +154,7 @@ module RSpec
149
154
  example.example_group_instance.instance_exec(example, &RSpec.configuration.retry_callback)
150
155
  end
151
156
 
152
- sleep sleep_interval if sleep_interval.to_i > 0
157
+ sleep sleep_interval if sleep_interval.to_f > 0
153
158
  end
154
159
  end
155
160
 
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  class Retry
3
- VERSION = "0.5.7"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
@@ -83,6 +83,21 @@ describe RSpec::Retry do
83
83
  end
84
84
  end
85
85
 
86
+ context "with exponential backoff enabled", :retry => 3, :retry_wait => 0.001, :exponential_backoff => true do
87
+ context do
88
+ before(:all) do
89
+ set_expectations([false, false, true])
90
+ @start_time = Time.now
91
+ end
92
+
93
+ it 'should run example until :retry times', :retry => 3 do
94
+ expect(true).to be(shift_expectation)
95
+ expect(count).to eq(3)
96
+ expect(Time.now - @start_time).to be >= (0.001)
97
+ end
98
+ end
99
+ end
100
+
86
101
  describe "with a list of exceptions to immediately fail on", :retry => 2, :exceptions_to_hard_fail => [HardFailError] do
87
102
  context "the example throws an exception contained in the hard fail list" do
88
103
  it "does not retry" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-retry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.7
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yusuke Mito
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-03-14 00:00:00.000000000 Z
12
+ date: 2018-05-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec-core
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
134
  version: '0'
135
135
  requirements: []
136
136
  rubyforge_project:
137
- rubygems_version: 2.7.3
137
+ rubygems_version: 2.7.6
138
138
  signing_key:
139
139
  specification_version: 4
140
140
  summary: retry intermittently failing rspec examples