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.

Reply via email to