Webmock: Please release new version for Ruby 2.6.0

Created on 7 Dec 2018  路  4Comments  路  Source: bblimke/webmock

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!!

Most helpful comment

WebMock 3.5.0, with Ruby 2.6.0 support, has been released. I'm sorry for the delay.

All 4 comments

@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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

emarthinsen picture emarthinsen  路  8Comments

bootstraponline picture bootstraponline  路  18Comments

rurounijones picture rurounijones  路  4Comments

joallard picture joallard  路  4Comments

dnesteryuk picture dnesteryuk  路  6Comments