manageiq icon indicating copy to clipboard operation
manageiq copied to clipboard

Sporadic test failures with SupportsFeatureMixin

Open agrare opened this issue 6 months ago • 1 comments

There appear to be some sporadic test failures between supports_feature_mixin_spec and a number of other specs which test ExtManagementSystem classes.


Failures:

  1) BlacklistedEvent.seed does not re-seed existing event filters
     Failure/Error: missing_events = ems.default_blacklisted_event_names - (existing[ems.name] || [])

     NoMethodError:
       undefined method `default_blacklisted_event_names' for ProviderA::ExtManagementSystem:Class
     # ./app/models/blacklisted_event.rb:27:in `block in seed'
     # ./app/models/blacklisted_event.rb:26:in `each'
     # ./app/models/blacklisted_event.rb:26:in `seed'
     # ./spec/models/blacklisted_event_spec.rb:28:in `block (3 levels) in <top (required)>'

  2) BlacklistedEvent.seed re-seeds deleted event filters
     Failure/Error: missing_events = ems.default_blacklisted_event_names - (existing[ems.name] || [])

     NoMethodError:
       undefined method `default_blacklisted_event_names' for ProviderA::ExtManagementSystem:Class
     # ./app/models/blacklisted_event.rb:27:in `block in seed'
     # ./app/models/blacklisted_event.rb:26:in `each'
     # ./app/models/blacklisted_event.rb:26:in `seed'
     # ./spec/models/blacklisted_event_spec.rb:12:in `block (3 levels) in <top (required)>'

  3) BlacklistedEvent.seed loads event filters
     Failure/Error: missing_events = ems.default_blacklisted_event_names - (existing[ems.name] || [])

     NoMethodError:
       undefined method `default_blacklisted_event_names' for ProviderA::ExtManagementSystem:Class
     # ./app/models/blacklisted_event.rb:27:in `block in seed'
     # ./app/models/blacklisted_event.rb:26:in `each'
     # ./app/models/blacklisted_event.rb:26:in `seed'
     # ./spec/models/blacklisted_event_spec.rb:7:in `block (3 levels) in <top (required)>'

  4) ExtManagementSystem .model_name_from_emstype
     Failure/Error: emstype = emstype.downcase

     NoMethodError:
       undefined method `downcase' for nil:NilClass
     # ./app/models/ext_management_system.rb:402:in `model_from_emstype'
     # ./app/models/ext_management_system.rb:398:in `model_name_from_emstype'
     # ./spec/models/ext_management_system_spec.rb:43:in `block (3 levels) in <top (required)>'
     # ./spec/models/ext_management_system_spec.rb:42:in `each'
     # ./spec/models/ext_management_system_spec.rb:42:in `block (2 levels) in <top (required)>'

  5) ExtManagementSystem validates type
     Failure/Error: expect { ManageIQ::Providers::BaseManager.new(:hostname => "abc", :name => "abc", :zone => FactoryBot.build(:zone)).validate! }.to raise_error(ActiveRecord::RecordInvalid)
       expected ActiveRecord::RecordInvalid but nothing was raised
     # ./spec/models/ext_management_system_spec.rb:152:in `block (2 levels) in <top (required)>'

  6) EvmDatabase.seed doesn't fail
     Failure/Error: missing_events = ems.default_blacklisted_event_names - (existing[ems.name] || [])

     NoMethodError:
       undefined method `default_blacklisted_event_names' for ProviderA::ExtManagementSystem:Class
     # ./app/models/blacklisted_event.rb:27:in `block in seed'
     # ./app/models/blacklisted_event.rb:26:in `each'
     # ./app/models/blacklisted_event.rb:26:in `seed'
     # ./lib/evm_database.rb:136:in `block (4 levels) in seed_classes'
     # ./lib/evm_database.rb:136:in `block (3 levels) in seed_classes'
     # ./lib/evm_database.rb:134:in `each'
     # ./lib/evm_database.rb:134:in `block (2 levels) in seed_classes'
     # ./lib/extensions/ar_table_lock.rb:21:in `block in with_lock'
     # ./lib/extensions/ar_table_lock.rb:15:in `with_lock'
     # ./lib/evm_database.rb:133:in `block in seed_classes'
     # ./lib/evm_database.rb:131:in `seed_classes'
     # ./lib/evm_database.rb:84:in `block in seed'
     # ./lib/evm_database.rb:68:in `with_seed'
     # ./lib/evm_database.rb:76:in `seed'
     # ./spec/lib/evm_database_spec.rb:48:in `block (3 levels) in <top (required)>'

 Failed examples:

rspec ./spec/models/blacklisted_event_spec.rb:20 # BlacklistedEvent.seed does not re-seed existing event filters
rspec ./spec/models/blacklisted_event_spec.rb:11 # BlacklistedEvent.seed re-seeds deleted event filters
rspec ./spec/models/blacklisted_event_spec.rb:6 # BlacklistedEvent.seed loads event filters
rspec ./spec/models/ext_management_system_spec.rb:41 # ExtManagementSystem .model_name_from_emstype
rspec ./spec/models/ext_management_system_spec.rb:144 # ExtManagementSystem validates type
rspec ./spec/lib/evm_database_spec.rb:47 # EvmDatabase.seed doesn't fail

All of these failures reference ProviderA::ExtManagementSystem:Class and I only see ProviderA in spec/models/mixins/supports_feature_mixin_spec.rb

[ref]

agrare avatar Aug 15 '24 16:08 agrare