vcr 2.2.1 → 2.2.2
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.
- data/CHANGELOG.md +12 -1
- data/lib/vcr.rb +5 -2
- data/lib/vcr/errors.rb +1 -1
- data/lib/vcr/test_frameworks/cucumber.rb +4 -2
- data/lib/vcr/version.rb +1 -1
- data/spec/vcr_spec.rb +8 -1
- metadata +4 -4
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
## In git
|
2
2
|
|
3
|
-
[Full Changelog](http://github.com/myronmarston/vcr/compare/v2.2.
|
3
|
+
[Full Changelog](http://github.com/myronmarston/vcr/compare/v2.2.2...master)
|
4
|
+
|
5
|
+
## 2.2.2 (June 15, 2012)
|
6
|
+
|
7
|
+
[Full Changelog](http://github.com/myronmarston/vcr/compare/v2.2.1...v2.2.2)
|
8
|
+
|
9
|
+
Bug Fixes:
|
10
|
+
|
11
|
+
* Fix `VCR.eject_cassette` so that it always pops a cassette off the
|
12
|
+
cassette stack even if an error occurs while ejecting the cassette.
|
13
|
+
This is important to keep things consistent, so that a cassette for
|
14
|
+
one test doesn't remain in place for another test.
|
4
15
|
|
5
16
|
## 2.2.1 (June 13, 2012)
|
6
17
|
|
data/lib/vcr.rb
CHANGED
@@ -134,6 +134,8 @@ module VCR
|
|
134
134
|
def eject_cassette
|
135
135
|
cassette = cassettes.last
|
136
136
|
cassette.eject if cassette
|
137
|
+
cassette
|
138
|
+
ensure
|
137
139
|
cassettes.pop
|
138
140
|
end
|
139
141
|
|
@@ -229,7 +231,7 @@ module VCR
|
|
229
231
|
#
|
230
232
|
# @param options [Hash] hash of options
|
231
233
|
# @option options :ignore_cassettes [Boolean] controls what happens when a cassette is
|
232
|
-
# inserted while VCR is turned off. If
|
234
|
+
# inserted while VCR is turned off. If `true` is passed, the cassette insertion
|
233
235
|
# will be ignored; otherwise a {VCR::Errors::TurnedOffError} will be raised.
|
234
236
|
#
|
235
237
|
# @return [void]
|
@@ -237,7 +239,8 @@ module VCR
|
|
237
239
|
# @raise [ArgumentError] if you pass an invalid option
|
238
240
|
def turn_off!(options = {})
|
239
241
|
if VCR.current_cassette
|
240
|
-
raise CassetteInUseError
|
242
|
+
raise CassetteInUseError, "A VCR cassette is currently in use (#{VCR.current_cassette.name}). " +
|
243
|
+
"You must eject it before you can turn VCR off."
|
241
244
|
end
|
242
245
|
|
243
246
|
@ignore_cassettes = options[:ignore_cassettes]
|
data/lib/vcr/errors.rb
CHANGED
@@ -31,7 +31,7 @@ module VCR
|
|
31
31
|
# Error raised when a VCR 1.x cassette is used with VCR 2.
|
32
32
|
class InvalidCassetteFormatError < Error; end
|
33
33
|
|
34
|
-
# Error raised when an
|
34
|
+
# Error raised when an `around_http_request` hook is used improperly.
|
35
35
|
# @see VCR::Configuration#around_http_request
|
36
36
|
class AroundHTTPRequestHookError < Error; end
|
37
37
|
|
@@ -20,11 +20,13 @@ module VCR
|
|
20
20
|
@main_object = main_object
|
21
21
|
end
|
22
22
|
|
23
|
-
# Adds
|
23
|
+
# Adds `Before` and `After` cucumber hooks for the named tags that
|
24
24
|
# will cause a VCR cassette to be used for scenarios with matching tags.
|
25
25
|
#
|
26
26
|
# @param [Array<String>] tag_names the cucumber scenario tags
|
27
|
-
# @param [(optional) Hash] options the cassette options. Specify
|
27
|
+
# @param [(optional) Hash] options the cassette options. Specify
|
28
|
+
# `:use_scenario_name => true` to automatically name the
|
29
|
+
# cassette according to the scenario name.
|
28
30
|
def tags(*tag_names)
|
29
31
|
original_options = tag_names.last.is_a?(::Hash) ? tag_names.pop : {}
|
30
32
|
tag_names.each do |tag_name|
|
data/lib/vcr/version.rb
CHANGED
data/spec/vcr_spec.rb
CHANGED
@@ -52,6 +52,13 @@ describe VCR do
|
|
52
52
|
current.should be(cassette)
|
53
53
|
VCR.current_cassette.should_not be(cassette)
|
54
54
|
end
|
55
|
+
|
56
|
+
it 'properly pops the cassette off the stack even if an error occurs' do
|
57
|
+
cassette = insert_cassette
|
58
|
+
cassette.stub(:eject) { raise "boom" }
|
59
|
+
expect { VCR.eject_cassette }.to raise_error("boom")
|
60
|
+
VCR.current_cassette.should be_nil
|
61
|
+
end
|
55
62
|
end
|
56
63
|
|
57
64
|
describe '.use_cassette' do
|
@@ -259,7 +266,7 @@ describe VCR do
|
|
259
266
|
VCR.insert_cassette('foo')
|
260
267
|
expect {
|
261
268
|
VCR.turn_off!
|
262
|
-
}.to raise_error(VCR::CassetteInUseError)
|
269
|
+
}.to raise_error(VCR::CassetteInUseError, /foo/)
|
263
270
|
end
|
264
271
|
|
265
272
|
it 'causes an error to be raised if you insert a cassette while VCR is turned off' do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vcr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 2.2.
|
9
|
+
- 2
|
10
|
+
version: 2.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Myron Marston
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-06-
|
18
|
+
date: 2012-06-15 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|