No idea, the patch is like black magic to me. I don't understand how overriding a method just to call super could even solve anything. Probably some binding trick. Ruby is dark and full of terrors...
On Wednesday, September 12, 2018 at 7:43:06 PM UTC+2, Surya wrote: > > Cyril, > > Thank you for the link. This patch solved the issue. Any idea where the > issue is exactly? Is it rspec-rails gem or rails itself? > > On Wed, 12 Sep 2018 at 01:57, <[email protected] <javascript:>> > wrote: > >> You might want to follow this answer from StackOverflow >> <https://stackoverflow.com/a/29442541/2832282>. In my previous mongoid >> project I did not need such patching but apparently we either missed >> something, or some strong dependencies were added in Rails/RSpec which >> makes it harder to separate it from ActiveRecord >> >> On Tuesday, September 11, 2018 at 10:07:15 PM UTC+2, Surya wrote: >>> >>> Here is the complete trace: >>> >>> >>> 16) PostsController routing routes to #destroy >>> Failure/Error: raise ConnectionNotEstablished, "No connection pool >>> with '#{spec_name}' found." unless pool >>> >>> ActiveRecord::ConnectionNotEstablished: >>> No connection pool with 'primary' found. >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:930:in >>> >>> `retrieve_connection' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/connection_handling.rb:116:in >>> >>> `retrieve_connection' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/connection_handling.rb:88:in >>> >>> `connection' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/fixtures.rb:516:in >>> >>> `create_fixtures' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/fixtures.rb:1028:in >>> >>> `load_fixtures' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/fixtures.rb:999:in >>> >>> `setup_fixtures' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/fixtures.rb:851:in >>> >>> `before_setup' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-rails-3.8.0/lib/rspec/rails/adapters.rb:126:in >>> >>> `block (2 levels) in <module:MinitestLifecycleAdapter>' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:447:in >>> >>> `instance_exec' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:447:in >>> >>> `instance_exec' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:373:in >>> >>> `execute_with' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:606:in >>> >>> `block (2 levels) in run_around_example_hooks_for' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:342:in >>> >>> `call' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:607:in >>> >>> `run_around_example_hooks_for' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:464:in >>> >>> `run' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:457:in >>> >>> `with_around_example_hooks' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:500:in >>> >>> `with_around_and_singleton_context_hooks' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:251:in >>> >>> `run' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:629:in >>> >>> `block in run_examples' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:625:in >>> >>> `map' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:625:in >>> >>> `run_examples' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:591:in >>> >>> `run' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:592:in >>> >>> `block in run' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:592:in >>> >>> `map' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb:592:in >>> >>> `run' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:116:in >>> >>> `block (3 levels) in run_specs' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:116:in >>> >>> `map' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:116:in >>> >>> `block (2 levels) in run_specs' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:1989:in >>> >>> `with_suite_hooks' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:111:in >>> >>> `block in run_specs' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/reporter.rb:74:in >>> >>> `report' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:110:in >>> >>> `run_specs' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:87:in >>> >>> `run' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:71:in >>> >>> `run' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:45:in >>> >>> `invoke' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.8.0/exe/rspec:4:in >>> `<top (required)>' >>> # /Users/surya/.rvm/gems/ruby-2.3.1/bin/rspec:23:in `load' >>> # /Users/surya/.rvm/gems/ruby-2.3.1/bin/rspec:23:in `<main>' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `eval' >>> # >>> /Users/surya/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `<main>' >>> # >>> # Showing full backtrace because every line was filtered out. >>> # See docs for RSpec::Configuration#backtrace_exclusion_patterns >>> and >>> # RSpec::Configuration#backtrace_inclusion_patterns for more >>> information. >>> >>> On Wed, 12 Sep 2018 at 01:35, Surya <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> I am having trouble setting up rspec rails with mongoid. I get the >>>> following exception(one of the exceptions but same for all 16 cases) when >>>> running the rspec: >>>> >>>> >>>> 16) PostsController routing routes to #destroy >>>> Failure/Error: raise ConnectionNotEstablished, "No connection >>>> pool with '#{spec_name}' found." unless pool >>>> >>>> ActiveRecord::ConnectionNotEstablished: >>>> No connection pool with 'primary' found. >>>> # >>>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:930:in >>>> >>>> `retrieve_connection' >>>> # >>>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/connection_handling.rb:116:in >>>> >>>> `retrieve_connection' >>>> # >>>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/connection_handling.rb:88:in >>>> >>>> `connection' >>>> # >>>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/fixtures.rb:516:in >>>> >>>> `create_fixtures' >>>> # >>>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/fixtures.rb:1028:in >>>> >>>> `load_fixtures' >>>> # >>>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/fixtures.rb:999:in >>>> >>>> `setup_fixtures' >>>> # >>>> /Users/surya/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.6/lib/active_record/fixtures.rb:851:in >>>> >>>> `before_setup' >>>> >>>> >>>> Here is the sample vanilla application code - >>>> https://github.com/suryart/rspec_mongo_test_app >>>> >>>> Steps that I followed : >>>> >>>> Create a new rails app - >>>> >>>> $ rails new rspec_mongo_test_app --api --skip-active-record -T >>>> >>>> Modify Gemfile to this: >>>> >>>> source 'https://rubygems.org' >>>> >>>> git_source(:github) do |repo_name| >>>> repo_name = "#{repo_name}/#{repo_name}" unless >>>> repo_name.include?("/") >>>> "https://github.com/#{repo_name}.git" >>>> end >>>> >>>> >>>> # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' >>>> gem 'rails', '~> 5.1.6' >>>> # Use Puma as the app server >>>> gem 'puma', '~> 3.7' >>>> # Build JSON APIs with ease. Read more: >>>> https://github.com/rails/jbuilder >>>> # gem 'jbuilder', '~> 2.5' >>>> # Use Redis adapter to run Action Cable in production >>>> # gem 'redis', '~> 4.0' >>>> # Use ActiveModel has_secure_password >>>> # gem 'bcrypt', '~> 3.1.7' >>>> >>>> # Use Capistrano for deployment >>>> # gem 'capistrano-rails', group: :development >>>> >>>> # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), >>>> making cross-origin AJAX possible >>>> # gem 'rack-cors' >>>> >>>> group :development, :test do >>>> # Call 'byebug' anywhere in the code to stop execution and get a >>>> debugger console >>>> gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] >>>> # gem 'database_cleaner', '~> 1.7' >>>> gem 'factory_bot_rails', '~> 4.x' >>>> gem 'forgery', '~> 0.7' >>>> gem 'guard-rspec', '4.7.3' >>>> gem 'mongoid-rspec', '~> 4.0' >>>> gem 'rspec-rails', '~> 3.8' >>>> gem 'rubocop', '~> 0.58.2', require: false >>>> gem 'simplecov', '~> 0.16', require: false >>>> gem 'reek', '~> 5.0', require: false >>>> end >>>> >>>> group :development do >>>> gem 'listen', '>= 3.0.5', '< 3.2' >>>> # Spring speeds up development by keeping your application >>>> running in the background. Read more: https://github.com/rails/spring >>>> gem 'spring' >>>> gem 'spring-watcher-listen', '~> 2.0.0' >>>> end >>>> >>>> # Windows does not include zoneinfo files, so bundle the >>>> tzinfo-data gem >>>> gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] >>>> >>>> gem 'mongoid', '~> 7.0' >>>> >>>> gem 'devise_token_auth', '0.1.43' >>>> >>>> >>>> Setup mongoid: >>>> >>>> $ rails g mongoid:config >>>> $ rails g rspec:install >>>> >>>> >>>> Now create a controller >>>> >>>> $ rails g scaffold post subject:string content:text >>>> >>>> Made config change in config/application.rb to take mongoid as ORM for >>>> generator( >>>> https://github.com/suryart/rspec_mongo_test_app/blob/master/config/application.rb), >>>> >>>> also modified spec_helper.rb to remove all active record related >>>> dependencies( >>>> https://github.com/suryart/rspec_mongo_test_app/blob/master/spec/rails_helper.rb >>>> ). >>>> >>>> >>>> I'm not quite sure what I'm doing wrong here. The whole setup works if >>>> I disable the `require 'rspec/rails'` line in rails_helper.rb file but >>>> then >>>> I can't run all rails controller/requests related tests as they require >>>> get/post etc methods. Please help. >>>> >>>> >>>> >>>> >>>> -- >>>> >>>> Please consider the environment before printing this email. >>>> >>>> Regards, >>>> Surya >>>> >>>> [image: This is my Footrr] <http://footrr.com/l/3697/> >>>> >>> >>> >>> -- >>> >>> Please consider the environment before printing this email. >>> >>> Regards, >>> Surya >>> >>> [image: This is my Footrr] <http://footrr.com/l/3697/> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "rspec" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] <javascript:> >> . >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/rspec/ac26adaf-2659-4cd8-9a5e-2442f798058e%40googlegroups.com >> >> <https://groups.google.com/d/msgid/rspec/ac26adaf-2659-4cd8-9a5e-2442f798058e%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > > -- > > Please consider the environment before printing this email. > > Regards, > Surya > > [image: This is my Footrr] <http://footrr.com/l/3697/> > -- You received this message because you are subscribed to the Google Groups "rspec" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/c7c00b46-ba41-4449-ad82-ed3010030a4a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
