vcr 2.9.3 → 3.0.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.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/features/about_these_examples.md +1 -1
  3. data/features/cassettes/automatic_re_recording.feature +4 -4
  4. data/features/cassettes/decompress.feature +3 -3
  5. data/features/cassettes/exclusive.feature +11 -8
  6. data/features/cassettes/format.feature +135 -32
  7. data/features/cassettes/naming.feature +2 -2
  8. data/features/cassettes/no_cassette.feature +4 -4
  9. data/features/configuration/allow_http_connections_when_no_cassette.feature +6 -3
  10. data/features/configuration/cassette_library_dir.feature +2 -2
  11. data/features/configuration/debug_logging.feature +15 -8
  12. data/features/configuration/filter_sensitive_data.feature +8 -7
  13. data/features/configuration/hook_into.feature +8 -8
  14. data/features/configuration/ignore_request.feature +13 -14
  15. data/features/configuration/preserve_exact_body_bytes.feature +5 -5
  16. data/features/configuration/uri_parser.feature +15 -11
  17. data/features/hooks/after_http_request.feature +5 -4
  18. data/features/hooks/around_http_request.feature +3 -3
  19. data/features/hooks/before_http_request.feature +4 -2
  20. data/features/hooks/before_playback.feature +14 -15
  21. data/features/hooks/before_record.feature +10 -10
  22. data/features/http_libraries/em_http_request.feature +6 -3
  23. data/features/http_libraries/net_http.feature +15 -5
  24. data/features/middleware/faraday.feature +2 -2
  25. data/features/middleware/rack.feature +4 -4
  26. data/features/record_modes/all.feature +5 -5
  27. data/features/record_modes/new_episodes.feature +2 -2
  28. data/features/record_modes/once.feature +3 -3
  29. data/features/step_definitions/cli_steps.rb +37 -39
  30. data/features/support/env.rb +29 -26
  31. data/features/support/http_lib_filters.rb +0 -7
  32. data/features/test_frameworks/cucumber.feature +11 -10
  33. data/features/test_frameworks/rspec_macro.feature +5 -30
  34. data/features/test_frameworks/rspec_metadata.feature +9 -8
  35. data/features/test_frameworks/test_unit.feature +5 -2
  36. data/lib/vcr.rb +86 -14
  37. data/lib/vcr/cassette.rb +4 -2
  38. data/lib/vcr/cassette/serializers.rb +10 -8
  39. data/lib/vcr/cassette/serializers/compressed.rb +45 -0
  40. data/lib/vcr/configuration.rb +38 -17
  41. data/lib/vcr/library_hooks/fakeweb.rb +1 -0
  42. data/lib/vcr/library_hooks/faraday.rb +5 -1
  43. data/lib/vcr/middleware/faraday.rb +13 -9
  44. data/lib/vcr/test_frameworks/cucumber.rb +39 -5
  45. data/lib/vcr/version.rb +1 -1
  46. data/spec/acceptance/concurrency_spec.rb +51 -0
  47. data/spec/{vcr → lib/vcr}/cassette/erb_renderer_spec.rb +0 -0
  48. data/spec/{vcr → lib/vcr}/cassette/http_interaction_list_spec.rb +0 -0
  49. data/spec/{vcr → lib/vcr}/cassette/migrator_spec.rb +10 -9
  50. data/spec/{vcr → lib/vcr}/cassette/persisters/file_system_spec.rb +0 -0
  51. data/spec/{vcr → lib/vcr}/cassette/persisters_spec.rb +0 -0
  52. data/spec/{vcr → lib/vcr}/cassette/serializers_spec.rb +8 -2
  53. data/spec/{vcr → lib/vcr}/cassette_spec.rb +0 -0
  54. data/spec/{vcr → lib/vcr}/configuration_spec.rb +0 -0
  55. data/spec/{vcr → lib/vcr}/deprecations_spec.rb +0 -0
  56. data/spec/{vcr → lib/vcr}/errors_spec.rb +0 -0
  57. data/spec/{vcr → lib/vcr}/extensions/net_http_response_spec.rb +0 -0
  58. data/spec/{vcr → lib/vcr}/library_hooks/excon_spec.rb +0 -0
  59. data/spec/{vcr → lib/vcr}/library_hooks/fakeweb_spec.rb +0 -0
  60. data/spec/{vcr → lib/vcr}/library_hooks/faraday_spec.rb +0 -0
  61. data/spec/{vcr → lib/vcr}/library_hooks/typhoeus_0.4_spec.rb +0 -0
  62. data/spec/{vcr → lib/vcr}/library_hooks/typhoeus_spec.rb +0 -0
  63. data/spec/{vcr → lib/vcr}/library_hooks/webmock_spec.rb +2 -2
  64. data/spec/{vcr → lib/vcr}/library_hooks_spec.rb +0 -0
  65. data/spec/{vcr → lib/vcr}/middleware/faraday_spec.rb +0 -0
  66. data/spec/{vcr → lib/vcr}/middleware/rack_spec.rb +0 -0
  67. data/spec/{vcr → lib/vcr}/request_ignorer_spec.rb +0 -0
  68. data/spec/{vcr → lib/vcr}/request_matcher_registry_spec.rb +0 -0
  69. data/spec/{vcr → lib/vcr}/structs_spec.rb +0 -0
  70. data/spec/{vcr → lib/vcr}/test_frameworks/cucumber_spec.rb +0 -0
  71. data/spec/{vcr → lib/vcr}/test_frameworks/rspec_spec.rb +0 -0
  72. data/spec/{vcr → lib/vcr}/util/hooks_spec.rb +0 -0
  73. data/spec/{vcr → lib/vcr}/util/internet_connection_spec.rb +0 -0
  74. data/spec/{vcr → lib/vcr}/util/version_checker_spec.rb +0 -0
  75. data/spec/{vcr → lib/vcr}/version_spec.rb +0 -0
  76. data/spec/{vcr_spec.rb → lib/vcr_spec.rb} +2 -2
  77. data/spec/spec_helper.rb +21 -50
  78. data/spec/support/cucumber_helpers.rb +39 -0
  79. data/spec/support/limited_uri.rb +1 -11
  80. data/spec/support/shared_example_groups/hook_into_http_library.rb +2 -1
  81. data/spec/support/vcr_localhost_server.rb +2 -3
  82. metadata +475 -123
  83. data/.gemtest +0 -0
  84. data/.gitignore +0 -52
  85. data/.gitmodules +0 -3
  86. data/.rspec +0 -2
  87. data/.travis.yml +0 -27
  88. data/.yardopts +0 -9
  89. data/Appraisals +0 -5
  90. data/CHANGELOG.md +0 -987
  91. data/CONTRIBUTING.md +0 -26
  92. data/Gemfile +0 -54
  93. data/Gemfile.lock +0 -159
  94. data/LICENSE +0 -20
  95. data/README.md +0 -243
  96. data/Rakefile +0 -197
  97. data/Upgrade.md +0 -289
  98. data/benchmarks/http_stubbing_libraries.rb +0 -59
  99. data/benchmarks/null_logging.rb +0 -62
  100. data/cucumber.yml +0 -16
  101. data/features/.nav +0 -62
  102. data/features/cassettes/persistence.feature +0 -63
  103. data/features/support/vcr_cucumber_helpers.rb +0 -46
  104. data/gemfiles/typhoeus_old.gemfile +0 -34
  105. data/gemfiles/typhoeus_old.gemfile.lock +0 -133
  106. data/script/ci.sh +0 -27
  107. data/spec/capture_warnings.rb +0 -73
  108. data/spec/quality_spec.rb +0 -51
  109. data/vcr.gemspec +0 -23
@@ -1,27 +0,0 @@
1
- # Kill the whole script on error
2
- set -e -x
3
-
4
- # idea taken from: http://blog.headius.com/2010/03/jruby-startup-time-tips.html
5
- export JRUBY_OPTS='-X-C' # disable JIT since these processes are so short lived
6
-
7
- # force jRuby to use client mode JVM or a compilation mode thats as close as possible,
8
- # idea taken from https://github.com/jruby/jruby/wiki/Improving-startup-time
9
- export JAVA_OPTS='-client -XX:+TieredCompilation -XX:TieredStopAtLevel=1'
10
-
11
- echo "-------- Running Typhoeus 0.4 Specs ---------"
12
- bundle install --gemfile=gemfiles/typhoeus_old.gemfile --without extras
13
- BUNDLE_GEMFILE=gemfiles/typhoeus_old.gemfile bundle exec rspec spec/vcr/library_hooks/typhoeus_0.4_spec.rb --format progress --backtrace
14
-
15
- # Setup vendored rspec-1
16
- bundle exec rake submodules
17
-
18
- echo "-------- Running Specs ---------"
19
- bundle exec ruby -I./spec -r./spec/capture_warnings -rspec_helper -S rspec spec --format progress --backtrace
20
-
21
- echo "-------- Running Cukes ---------"
22
- bundle exec cucumber
23
-
24
- echo "-------- Checking Coverage ---------"
25
- bundle exec rake yard_coverage
26
-
27
- bundle exec rake check_code_coverage
@@ -1,73 +0,0 @@
1
- require 'rubygems' if RUBY_VERSION =~ /^1\.8/
2
- require 'bundler/setup'
3
- require 'rspec/core'
4
- require 'rspec/expectations'
5
- require 'tempfile'
6
-
7
- stderr_file = Tempfile.new("vcr.stderr")
8
- current_dir = Dir.pwd
9
-
10
- RSpec.configure do |config|
11
- config.before(:suite) do
12
- $stderr.reopen(stderr_file.path)
13
- $VERBOSE = true
14
- end
15
-
16
- config.after(:suite) do
17
- stderr_file.rewind
18
- lines = stderr_file.read.split("\n").uniq
19
- stderr_file.close!
20
-
21
- $stderr.reopen(STDERR)
22
-
23
- vcr_warnings, other_warnings = lines.partition { |line| line.include?(current_dir) }
24
-
25
- # After upgrading to curb 0.8.1, I started to get a circular require
26
- # warning from spec_helper and monkey_patches.rb even though there doesn't
27
- # appear to be a circular require going on...
28
- vcr_warnings.reject! do |line|
29
- line.include?("#{current_dir}/spec/spec_helper.rb") ||
30
- line.include?("#{current_dir}/spec/monkey_patches.rb")
31
- end
32
-
33
- # For some weird reason, JRuby is giving me some warnings about
34
- # `@proxy` not being initialized, and putting a vcr file/line number
35
- # in the warning, but it's really happening in excon.
36
- if RUBY_PLATFORM == 'java'
37
- vcr_warnings.reject! do |line|
38
- line.include?('@proxy not initialized') && line.include?('excon')
39
- end
40
- end
41
-
42
- # For some reason, I get a strange warning on 1.9.2 on Travis-CI but
43
- # I can't repro locally:
44
- # from /home/travis/builds/myronmarston/vcr/spec/monkey_pnet/http:
45
- # warning: Content-Type did not set; using application/x-www-form-urlencoded
46
- if RUBY_VERSION == '1.9.2' && ENV['CI']
47
- vcr_warnings.reject! do |line|
48
- line.include?('monkey_pnet')
49
- end
50
- end
51
-
52
- if vcr_warnings.any?
53
- puts
54
- puts "-" * 30 + " VCR Warnings: " + "-" * 30
55
- puts
56
- puts vcr_warnings.join("\n")
57
- puts
58
- puts "-" * 75
59
- puts
60
- end
61
-
62
- if other_warnings.any?
63
- File.open('tmp/warnings.txt', 'w') { |f| f.write(other_warnings.join("\n")) }
64
- puts
65
- puts "Non-VCR warnings written to tmp/warnings.txt"
66
- puts
67
- end
68
-
69
- # fail the build...
70
- raise "Failing build due to VCR warnings" if vcr_warnings.any?
71
- end
72
- end
73
-
@@ -1,51 +0,0 @@
1
- # Borrowed from:
2
- # https://github.com/carlhuda/bundler/blob/v1.1.rc.7/spec/quality_spec.rb
3
- require "spec_helper"
4
-
5
- describe "The library itself" do
6
- def check_for_tab_characters(filename)
7
- failing_lines = []
8
- File.readlines(filename).each_with_index do |line,number|
9
- failing_lines << number + 1 if line =~ /\t/
10
- end
11
-
12
- unless failing_lines.empty?
13
- "#{filename} has tab characters on lines #{failing_lines.join(', ')}"
14
- end
15
- end
16
-
17
- def check_for_extra_spaces(filename)
18
- failing_lines = []
19
- File.readlines(filename).each_with_index do |line,number|
20
- next if line =~ /^\s+#.*\s+\n$/
21
- failing_lines << number + 1 if line =~ /\s+\n$/
22
- end
23
-
24
- unless failing_lines.empty?
25
- "#{filename} has spaces on the EOL on lines #{failing_lines.join(', ')}"
26
- end
27
- end
28
-
29
- RSpec::Matchers.define :be_well_formed do
30
- failure_message do |actual|
31
- actual.join("\n")
32
- end
33
-
34
- match do |actual|
35
- actual.empty?
36
- end
37
- end
38
-
39
- it "has no malformed whitespace" do
40
- error_messages = []
41
- Dir.chdir(File.expand_path("../..", __FILE__)) do
42
- `git ls-files`.split("\n").each do |filename|
43
- next if filename =~ /vendor|.feature|.yml|.gitmodules/
44
- error_messages << check_for_tab_characters(filename)
45
- error_messages << check_for_extra_spaces(filename)
46
- end
47
- end
48
- expect(error_messages.compact).to be_well_formed
49
- end
50
- end
51
-
@@ -1,23 +0,0 @@
1
- $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
- require "vcr/version"
3
-
4
- Gem::Specification.new do |s|
5
- s.name = "vcr"
6
- s.homepage = "https://github.com/vcr/vcr"
7
- s.license = "MIT"
8
- s.authors = ["Myron Marston"]
9
- s.summary = "Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests."
10
- s.description = "VCR provides a simple API to record and replay your test suite's HTTP interactions. It works with a variety of HTTP client libraries, HTTP stubbing libraries and testing frameworks."
11
- s.email = "myron.marston@gmail.com"
12
- s.require_path = "lib"
13
- s.files = `git ls-files`.split("\n")
14
- s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
15
-
16
- s.version = VCR.version
17
- s.platform = Gem::Platform::RUBY
18
- s.required_ruby_version = '>= 1.8.7'
19
- s.required_rubygems_version = '>= 1.3.5'
20
-
21
- # Development dependencies are listed in the Gemfile.
22
- end
23
-