diff options
author | Mark Longair <mhl@pobox.com> | 2013-10-07 12:31:51 +0100 |
---|---|---|
committer | Mark Longair <mhl@pobox.com> | 2013-10-07 12:31:51 +0100 |
commit | 4d648e3e39c9ff0d721f1bf06266893a39c9b118 (patch) | |
tree | a6df3731c8ecdee2f3f4c7e467ca51d2094dc003 /spec/spec_helper.rb | |
parent | 86f1fde1c2ace3e67185368033b3328ad8be83c2 (diff) |
Factor out a 'with_duplicate_xapian_job_creation' helper
In a subsequent commit, we will want to wrap an additional section
of code with the addition and removal of a hook that creates a
duplicate xapian job, so it's useful for this to be factored out.
This commit introduces a 'with_duplicate_xapian_job_creation'
method that can be passed a block which will be run with the forced
duplicate xapian job creation.
Diffstat (limited to 'spec/spec_helper.rb')
-rw-r--r-- | spec/spec_helper.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0d8f8fac5..6e65018f1 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -125,6 +125,25 @@ Spork.prefork do rebuild_xapian_index end + # Use the before create job hook to simulate a race condition with + # another process by creating an acts_as_xapian_job record for the + # same model: + def with_duplicate_xapian_job_creation + InfoRequestEvent.module_eval do + def xapian_before_create_job_hook(action, model, model_id) + ActsAsXapian::ActsAsXapianJob.create!(:model => model, + :model_id => model_id, + :action => action) + end + end + yield + ensure + InfoRequestEvent.module_eval do + def xapian_before_create_job_hook(action, model, model_id) + end + end + end + def with_env_tz(new_tz = 'US/Eastern') old_tz, ENV['TZ'] = ENV['TZ'], new_tz yield |