rspec-retry 0.5.6 → 0.5.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +2 -1
- data/README.md +2 -1
- data/changelog.md +4 -0
- data/gemfiles/rspec_3.3.gemfile.lock +3 -3
- data/gemfiles/rspec_3.4.gemfile.lock +3 -3
- data/gemfiles/rspec_3.5.gemfile.lock +3 -3
- data/gemfiles/rspec_3.6.gemfile.lock +3 -3
- data/gemfiles/rspec_3.7.gemfile.lock +3 -3
- data/lib/rspec/retry.rb +8 -6
- data/lib/rspec/retry/version.rb +1 -1
- data/rspec-retry.gemspec +1 -1
- data/spec/lib/rspec/retry_spec.rb +16 -3
- metadata +3 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f9495b2b80997f741d94f1c3363417fb7b57fb153427308920aa2bc740524654
|
4
|
+
data.tar.gz: d4d0a79478c5fc34d26417d4da28e56b5c7cf216251499228334ca18b4633979
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cac40d871b44e8cebbf8cfef993902d3e58522181a3751009609b9eb6b6acb3ae063ca547d1a5bc1ef6cd857916bfc44bb2ff58ae437728b95c6c86c8a3cd0e7
|
7
|
+
data.tar.gz: e67751467ae5fd1afd2a99160cb550e594d7cd432ed14f7395d0780794e649c0ad2f41600b201b6da30aa2764ade1c55ebfccd2f4e0493f39350ba57e76c4749
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,8 @@ specified number of times until the example succeeds.
|
|
8
8
|
|
9
9
|
| Rspec Version | Rspec-Retry Version |
|
10
10
|
|---------------|---------------------|
|
11
|
-
| 3.
|
11
|
+
| > 3.8 | 0.5.7 but untested |
|
12
|
+
| > 3.3, <= 3.8 | 0.5.7 |
|
12
13
|
| 3.2 | 0.4.6 |
|
13
14
|
| 2.14.8 | 0.4.4 |
|
14
15
|
|
data/changelog.md
CHANGED
data/lib/rspec/retry.rb
CHANGED
@@ -121,15 +121,11 @@ module RSpec
|
|
121
121
|
break if attempts >= retry_count
|
122
122
|
|
123
123
|
if exceptions_to_hard_fail.any?
|
124
|
-
break if exceptions_to_hard_fail.
|
125
|
-
example.exception.is_a?(exception_klass)
|
126
|
-
end
|
124
|
+
break if exception_exists_in?(exceptions_to_hard_fail, example.exception)
|
127
125
|
end
|
128
126
|
|
129
127
|
if exceptions_to_retry.any?
|
130
|
-
break unless exceptions_to_retry.
|
131
|
-
example.exception.is_a?(exception_klass)
|
132
|
-
end
|
128
|
+
break unless exception_exists_in?(exceptions_to_retry, example.exception)
|
133
129
|
end
|
134
130
|
|
135
131
|
if verbose_retry? && display_try_failure_messages?
|
@@ -172,6 +168,12 @@ module RSpec
|
|
172
168
|
end
|
173
169
|
end
|
174
170
|
end
|
171
|
+
|
172
|
+
def exception_exists_in?(list, exception)
|
173
|
+
list.any? do |exception_klass|
|
174
|
+
exception.is_a?(exception_klass) || exception_klass === exception
|
175
|
+
end
|
176
|
+
end
|
175
177
|
end
|
176
178
|
end
|
177
179
|
|
data/lib/rspec/retry/version.rb
CHANGED
data/rspec-retry.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.name = "rspec-retry"
|
16
16
|
gem.require_paths = ["lib"]
|
17
17
|
gem.version = RSpec::Retry::VERSION
|
18
|
-
gem.add_runtime_dependency(%{rspec-core}, '>3.3'
|
18
|
+
gem.add_runtime_dependency(%{rspec-core}, '>3.3')
|
19
19
|
gem.add_development_dependency %q{appraisal}
|
20
20
|
gem.add_development_dependency %q{rspec}
|
21
21
|
gem.add_development_dependency %q{byebug}, '~>9.0.6' # 9.1 deprecates ruby 2.1
|
@@ -23,9 +23,8 @@ describe RSpec::Retry do
|
|
23
23
|
class RetryChildError < RetryError; end
|
24
24
|
class HardFailError < StandardError; end
|
25
25
|
class HardFailChildError < HardFailError; end
|
26
|
-
class OtherError < StandardError; end
|
27
|
-
class SharedError < StandardError; end
|
28
|
-
|
26
|
+
class OtherError < StandardError; end
|
27
|
+
class SharedError < StandardError; end
|
29
28
|
before(:all) do
|
30
29
|
ENV.delete('RSPEC_RETRY_RETRY_COUNT')
|
31
30
|
end
|
@@ -130,6 +129,20 @@ describe RSpec::Retry do
|
|
130
129
|
expect(count).to eq(1)
|
131
130
|
end
|
132
131
|
end
|
132
|
+
|
133
|
+
context 'the example retries exceptions which match with case equality' do
|
134
|
+
class CaseEqualityError < StandardError
|
135
|
+
def self.===(other)
|
136
|
+
# An example of dynamic matching
|
137
|
+
other.message == 'Rescue me!'
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'retries the maximum number of times', exceptions_to_retry: [CaseEqualityError] do
|
142
|
+
raise StandardError, 'Rescue me!' unless count > 1
|
143
|
+
expect(count).to eq(2)
|
144
|
+
end
|
145
|
+
end
|
133
146
|
end
|
134
147
|
|
135
148
|
describe "with both hard fail and retry list of exceptions", :retry => 2, :exceptions_to_retry => [SharedError, RetryError], :exceptions_to_hard_fail => [SharedError, HardFailError] 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.
|
4
|
+
version: 0.5.7
|
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:
|
12
|
+
date: 2018-03-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec-core
|
@@ -18,9 +18,6 @@ dependencies:
|
|
18
18
|
- - ">"
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '3.3'
|
21
|
-
- - "<"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: '3.8'
|
24
21
|
type: :runtime
|
25
22
|
prerelease: false
|
26
23
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -28,9 +25,6 @@ dependencies:
|
|
28
25
|
- - ">"
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: '3.3'
|
31
|
-
- - "<"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '3.8'
|
34
28
|
- !ruby/object:Gem::Dependency
|
35
29
|
name: appraisal
|
36
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
134
|
version: '0'
|
141
135
|
requirements: []
|
142
136
|
rubyforge_project:
|
143
|
-
rubygems_version: 2.
|
137
|
+
rubygems_version: 2.7.3
|
144
138
|
signing_key:
|
145
139
|
specification_version: 4
|
146
140
|
summary: retry intermittently failing rspec examples
|