Our product have used webmock
for testing.
When testing with Ruby 2.6.0 rc1 released today, webmock
v3.4.2 raised the following exceptions:
ArgumentError: unknown keyword: write_timeout
vendor/bundle/ruby/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:259:in `initialize'
/home/travis/.rvm/rubies/ruby-2.6.0-rc1/lib/ruby/2.6.0/net/http.rb:1002:in `new'
/home/travis/.rvm/rubies/ruby-2.6.0-rc1/lib/ruby/2.6.0/net/http.rb:1002:in `connect'
/home/travis/.rvm/rubies/ruby-2.6.0-rc1/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
vendor/bundle/ruby/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:136:in `start_with_connect_without_finish'
vendor/bundle/ruby/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:104:in `request'
/home/travis/.rvm/rubies/ruby-2.6.0-rc1/lib/ruby/2.6.0/net/http.rb:1228:in `get'
vendor/bundle/ruby/2.6.0/gems/capybara-3.12.0/lib/capybara/server.rb:54:in `block in responsive?'
vendor/bundle/ruby/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:123:in `start_without_connect'
vendor/bundle/ruby/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:150:in `start'
I think this issue would be solved by https://github.com/bblimke/webmock/commit/9432aaa21b6b1bdc038b1c22537444f223643d8f (#769).
So, could you please release new webmock
version for Ruby 2.6.0 ? Thank you!!
@bblimke pretty please :pray:
I'm getting the same error with 2.6.0, but only in feature specs. I'm using Webmock/VCR in job and service specs as well, but those are passing. Here's a trace from one of the feature specs.
Failure/Error: visit admin_promotions_path
ArgumentError:
unknown keyword: write_timeout
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:259:in `initialize'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/http.rb:1002:in `new'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/http.rb:1002:in `connect'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:136:in `start_with_connect_without_finish'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:104:in `request'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/http.rb:1228:in `get'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara/server.rb:54:in `block in responsive?'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:123:in `start_without_connect'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/webmock-3.4.2/lib/webmock/http_lib_adapters/net_http.rb:150:in `start'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/http.rb:605:in `start'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara/server/checker.rb:28:in `http_request'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara/server/checker.rb:14:in `request'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara/server.rb:54:in `responsive?'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara/server.rb:71:in `boot'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara/session.rb:91:in `initialize'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara.rb:397:in `new'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara.rb:397:in `block in session_pool'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara.rb:302:in `current_session'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara/dsl.rb:46:in `page'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/capybara-3.12.0/lib/capybara/dsl.rb:51:in `block (2 levels) in <module:DSL>'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-rails-3.8.1/lib/rspec/rails/example/feature_example_group.rb:29:in `visit'
# ./spec/features/admin/promotions_spec.rb:31:in `block (3 levels) in <top (required)>'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:447:in `instance_exec'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:447:in `instance_exec'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:348:in `run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:507:in `block in run_owned_hooks_for'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:506:in `each'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:506:in `run_owned_hooks_for'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:593:in `block in run_example_hooks_for'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:592:in `reverse_each'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:592:in `run_example_hooks_for'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:462:in `run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:494:in `run_before_example'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:253:in `block in run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:464:in `block in run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:604:in `block in run_around_example_hooks_for'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:342:in `call'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-rails-3.8.1/lib/rspec/rails/adapters.rb:127:in `block (2 levels) in <module:MinitestLifecycleAdapter>'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:447:in `instance_exec'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:447:in `instance_exec'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:373:in `execute_with'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:606:in `block (2 levels) in run_around_example_hooks_for'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:342:in `call'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:607:in `run_around_example_hooks_for'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:464:in `run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:457:in `with_around_example_hooks'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:500:in `with_around_and_singleton_context_hooks'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:251:in `run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:629:in `block in run_examples'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:625:in `map'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:625:in `run_examples'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:591:in `run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:592:in `block in run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:592:in `map'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:592:in `run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:116:in `block (3 levels) in run_specs'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:116:in `map'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:116:in `block (2 levels) in run_specs'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:1989:in `with_suite_hooks'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:111:in `block in run_specs'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/reporter.rb:74:in `report'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:110:in `run_specs'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:87:in `run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:71:in `run'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:45:in `invoke'
# /Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/rspec-core-3.8.0/exe/rspec:4:in `<top (required)>'
# /Users/emptywalls/.rbenv/versions/2.6.0/bin/rspec:23:in `load'
# /Users/emptywalls/.rbenv/versions/2.6.0/bin/rspec:23:in `<main>'
Switching to the master branch for Webmock seems to work, tests are passing. Now I'm seeing an unrelated warning that seems to be coming from ActiveSupport...
/Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:456: warning: already initialized constant API
/Users/emptywalls/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:456: warning: previous definition of API was here
WebMock 3.5.0, with Ruby 2.6.0 support, has been released. I'm sorry for the delay.
Most helpful comment
WebMock 3.5.0, with Ruby 2.6.0 support, has been released. I'm sorry for the delay.