puppet-selinux
puppet-selinux copied to clipboard
Review RSpec/BeforeAfterAll: Beware of using before/after(:all) rubocop warning
new error with rubocop-rspec 1.12:
spec/acceptance/selinux_permissive_spec.rb:9:5: C: RSpec/BeforeAfterAll: Beware of using before/after(:all) as it may cause state to leak between tests. If you are using rspec-rails, and use_transactional_fixtures is enabled, then records created in before(:all) are not rolled back.
after :all do
^^^^^^^^^
comment on IRC:
the spec's not well-structured.. it has multiple "it" blocks (examples) that rely on the state set by a previous example, e.g. one example calls result.exit_code, the next runs a check, then after(:all) resets the system state.
probably best to move the shell() checks into the same it {} block that actually runs the test, or have the test re-run in each it {} block (rather unnecessary)
I suppose the specs could use a look-over, but the purpose of the before/after all blocks is to set up some state in the system for the module to act on, and then clean it up after the set of tests is done.