Commit 1da4461
committed
Avoid hitting the database at factory definition time
Factory bot rails's railtie tries to find factory definitions during the rails
initialization hooks at rails startup.
Previously, the miq_region.rb factory was running MiqRegion.my_region_number
early to avoid tests that might stub my_region_number later.
This caused a failure in our bin/test_database_connectivity test as we were
now connecting to the database during our initializers.
To fix this, we can lazily evaluate the underlying method,
region_number_from_sequence, called by my_region_number when we create the region.
Here is the backtrace of the failure that was occurring in the test:
```
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/activerecord-id_regions-0.5.0/lib/active_record/id_regions.rb:128:in `region_number_from_sequence'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/activerecord-id_regions-0.5.0/lib/active_record/id_regions.rb:139:in `discover_my_region_number'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/activerecord-id_regions-0.5.0/lib/active_record/id_regions.rb:18:in `my_region_number'
/home/runner/work/manageiq/manageiq/spec/factories/miq_region.rb:2:in `block in <main>'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/syntax/default.rb:37:in `instance_eval'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/syntax/default.rb:37:in `run'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/syntax/default.rb:7:in `define'
/home/runner/work/manageiq/manageiq/spec/factories/miq_region.rb:1:in `<main>'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/find_definitions.rb:20:in `load'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/find_definitions.rb:20:in `block (2 levels) in find_definitions'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/find_definitions.rb:19:in `each'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/find_definitions.rb:19:in `block in find_definitions'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/find_definitions.rb:15:in `each'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.5/lib/factory_bot/find_definitions.rb:15:in `find_definitions'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/factory_bot_rails-6.5.1/lib/factory_bot_rails/railtie.rb:42:in `block in <class:Railtie>'
/home/runner/work/manageiq/manageiq/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.2/lib/active_support/lazy_load_hooks.rb:94:in `block in execute_hook'
```1 parent 01dbb53 commit 1da4461
1 file changed
+3
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | 2 | | |
5 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
0 commit comments