aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/test
Commit message (Collapse)AuthorAgeFilesLines
* Added support for bigdecimals in perform laterSiva Gollapalli2015-12-031-1/+1
|
* Fix race condition testing for job execution orderWill Jessop2015-11-233-7/+18
| | | | | | | | | | | | | | | On most filesystems file ctime is limited to 1 second granularity, which means that on faster computers multiple simple jobs (for instance dummy TestJob) can finish within the same second. The execution order test in ActiveJob integration tests relies on multiple TestJobs writing files then comparing the ctime. As a result integration tests would sometimes fail as the ctime of the files written by these TestJobs could have coincidental ctimes making the comparison for job order fail. This commit adds a far more precise execution time (to the extent that the Ruby Time class allows) to the file created by TestJob, and updates the execution order assertion to use it, removing the race condition.
* Require only necessary concurrent-ruby classes.Jerry D'Antonio2015-11-041-1/+0
|
* Deprecate exception#original_exception in favor of exception#causeYuki Nishijima2015-11-031-1/+1
|
* Added missing specs for not modifying queues when using AJ test helpersWojciech Wnętrzak2015-10-071-0/+21
|
* Merge pull request #21854 from morgoth/fix-serializing-at-option-in-aj-matchersYves Senn2015-10-051-4/+22
|\ | | | | | | Fixed serializing `:at` option for `assert_eqnueued_with` and `assert_performed_with`
| * Fixed serializing `:at` option for `assert_enqueued_with` and ↵Wojciech Wnętrzak2015-10-031-4/+16
|/ | | | `assert_performed_with`
* Support passing array to `assert_enqueued_jobs` in `:only` optionWojciech Wnętrzak2015-10-031-0/+18
|
* Merge pull request #19425 from wvengen/feature/activejob-priority-masterRafael Mendonça França2015-09-254-2/+66
|\ | | | | Add job priorities to ActiveJob
| * Add job priorities to ActiveJobwvengen2015-09-174-2/+66
| |
* | Use Sidekiq.options to set initial waitAndrew White2015-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | The INITIAL_WAIT constant has moved to the Sidekiq::Poller class but rather than setting the constant directly we can override it via the `:poll_interval_average` option. This was causing random build failures because the test was waiting for 10 seconds for the job to execute but the initial wait was a random value between 10 and 15 seconds.
* | Run `rake db:migrate` for all Active Job integration testsAndrew White2015-09-211-1/+2
| | | | | | | | | | | | If db/schema.rb doesn't exist then we get warnings from the dummy Rails application so run it for all adapters even if they're not using the database to store jobs.
* | Silence logging in Active Job unit testsAndrew White2015-09-211-0/+1
| |
* | :hocho: TyposAkira Matsuda2015-09-211-1/+1
| |
* | Added new lines to run title for easy log readinghiren mistry2015-09-191-1/+1
|/
* Properly log nested parameters to Active JobMarek Pieczyk2015-09-081-0/+8
| | | | Refactor arguments logging method for Active Job
* Silence callback deprecation warning if testing AJclaudiob2015-08-311-0/+1
| | | | | | | | | | | | | | | Currently the log returned by running ActiveJob tests is filled with: > DEPRECATION WARNING: Returning `false` in a callback will not implicitly halt a callback chain in the next release of Rails. To explicitly halt a callback chain, please use `throw :abort` instead. For instance, see https://travis-ci.org/rails/rails/builds/77978273 This happens because some setup and teardown methods [like these one](https://github.com/rails/rails/blob/master/activejob/test/cases/async_job_test.rb#L10-L17) invoke other methods like `perform_asynchronously!` that can return `false`, but not with the intention of halting the process if they do. In my opinion, these deprecation warnings can be silenced to have the log result cleaner (especially when browsing for errors).
* Initial implementation of ActiveJob AsyncAdapter.Jerry D'Antonio2015-08-255-1/+67
|
* use `average_scheduled_poll_interval` option instead of deprecated ↵yuuji.yaginuma2015-08-151-1/+1
| | | | | | | | | | `poll_interval` this removes the following warning: ``` DEPRECATION: `config.poll_interval = 0.5` will be removed in Sidekiq 4. Please update to `config.average_scheduled_poll_interval = 0.5`. ```
* implement `provider_job_id` for `queue_classic`.Yves Senn2015-08-131-2/+2
| | | | | | The latest, currently unreleased, version of queue_classic is required for this to work. See https://github.com/QueueClassic/queue_classic/pull/262 for more details.
* use `assert_not` instead of `refute` as mentioned in our guides.Yves Senn2015-08-131-3/+2
| | | | | | | | | | | As described in the "Follow Coding Conventions" section in our contribution guide (http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#follow-the-coding-conventions) we favor `assert_not` over `refute`. While we don't usually make stylistic changes on it's own I opted to do it in this case. The reason being that test cases are usually copied as a starting point for new tests. This results in a spread of `refute` in files that have been using it already.
* Make assert_enqueued_with and assert_performed_with returns the matched jobJean Boussier2015-08-101-0/+22
|
* Add missing HelloJob require.Kasper Timm Hansen2015-08-051-0/+1
| | | | This way JobSerializationTest runs in isolation without errors.
* Fixes #20799Johannes Opper2015-08-046-1/+72
| | | | | | | | | | | | | | | | | | | | | | When `#perform_later` is called the locale isn't stored on the queue, which results in a locale reset when the job is performed. An example of the problem: I18n.locale = 'de' HelloJob.perform_now # german message, correct but I18n.locale = 'de' HelloJob.perform_later # english message, incorrect This PR attaches the current I18n.locale to every job during the serialization process. It is then restored during deserialization and used to perform the job with the correct locale. It falls back to the default locale if no serialized locale is found in order to provide backward compatibility with previously stored jobs. It is not necessary to clear the queue for the update.
* Improve error message when serializing unsaved records for jobsFaraz Yashar2015-06-281-0/+7
|
* Fix spelling mistakesYoong Kang Lim2015-05-251-4/+4
|
* Merge pull request #20064 from kddeisz/qu_provider_job_idRafael Mendonça França2015-05-082-7/+10
|\ | | | | Provide provider_job_id to qu adapter.
| * Provide provider_job_id to qu adapter.Kevin Deisz2015-05-072-7/+10
| | | | | | | | Further work to provide provider_job_id for queue adapters.
* | Don't need to explicitly set test_order it's :random defaultMehmet Emin İNAÇ2015-05-081-2/+0
|/
* Make que report back its job_id to provider_job_idJeroen van Baarsen2015-05-071-10/+4
| | | | Signed-off-by: Jeroen van Baarsen <jeroenvanbaarsen@gmail.com>
* Let Sidekiq set provider_job_idJeroen van Baarsen2015-05-071-0/+10
| | | | | | | | | | When a job is added to Sidekiq by ActiveJob, make sure we still can get the original job_id provider by Sidekiq. We do this by adding the sidekiq jid to provider_job_id field on the job object. Partly fixes #18821 Signed-off-by: Jeroen van Baarsen <jeroenvanbaarsen@gmail.com>
* Get provider_job_id from DelayedJobKevin Deisz2015-05-051-0/+6
| | | | | When queueing with DelayedJob, get the id of the job instance and report it back to ActiveJob as provider_job_id.
* Do not use named queues for que adapterRafael Mendonça França2015-05-032-2/+2
| | | | See #19498
* Merge pull request #19498 from chanks/activejob-que-remove-named-queuesRafael Mendonça França2015-05-031-1/+5
|\ | | | | ActiveJob: Stop using Que's named queues.
| * Stop using Que's named queues in its ActiveJob adapter.Chris Hanks2015-03-241-1/+5
| |
* | Merge pull request #19969 from y-yagi/fix_job_helper_methodYves Senn2015-05-011-0/+22
| | | | | | | | match a expected value with message of `assert_equal` in AJ helper methods
* | Queue Classic runs a second earlier than scheduledMatthew Draper2015-04-231-1/+1
| | | | | | | | | | | | | | That seems to be a bug, but as we don't actually care about the precision for our test, we'll just give it a bit longer. [Matthew Draper & Cristian Bica]
* | Only *configure* the queue in setup; DB creation must come laterMatthew Draper2015-04-202-21/+25
| | | | | | | | | | | | | | | | | | setup gets called from the initializer, so it happens more than once in a test run. Trying to drop the database again after the first process is connected is.. ineffective. And entirely pointless. Instead, defer creating the database to start_workers -- which only happens once, right before we start doing anything real.
* | Shuffle a few things in aid of easier debuggingMatthew Draper2015-04-201-20/+36
| | | | | | | | | | | | | | * Don't swallow output -- if there is any, it's probably useful * Wait for the process to finish * Use IPC instead of a sleep * No need for a pidfile
* | Fix sidekiq test order dependencyMatthew Draper2015-04-202-2/+3
| | | | | | | | | | | | | | | | Requiring sidekiq/testing changes stuff, so we need to counteract that after we do so. And given its potential to confuse things, let's do it up front, at a predictable point.
* | avoid double initialization error caused to sidekiqTakumi IINO2015-04-141-13/+34
| | | | | | | | | | | | Sidekiq::CLI#boot_system require "#{dummy_app_path}/config/environment.rb". But this file has already been required in'test/support/integration/helper.rb'. This patch will change to use Sidekiq::Launcher directly.
* | Pass wrapped class name to Sidekiq for logging purposesMike Perham2015-03-231-0/+13
|/ | | | | | | Sidekiq logs the name of the job class being performed. Because ActiveJob wraps the class, this means every job logs as an AJ::JobWrapper instead of the actual class name. Will help fix mperham/sidekiq#2248
* Closes rails/rails#18864: Renaming transactional fixtures to transactional testsBrandon Weiss2015-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | I’m renaming all instances of `use_transcational_fixtures` to `use_transactional_tests` and “transactional fixtures” to “transactional tests”. I’m deprecating `use_transactional_fixtures=`. So anyone who is explicitly setting this will get a warning telling them to use `use_transactional_tests=` instead. I’m maintaining backwards compatibility—both forms will work. `use_transactional_tests` will check to see if `use_transactional_fixtures` is set and use that, otherwise it will use itself. But because `use_transactional_tests` is a class attribute (created with `class_attribute`) this requires a little bit of hoop jumping. The writer method that `class_attribute` generates defines a new reader method that return the value being set. Which means we can’t set the default of `true` using `use_transactional_tests=` as was done previously because that won’t take into account anyone using `use_transactional_fixtures`. Instead I defined the reader method manually and it checks `use_transactional_fixtures`. If it was set then it should be used, otherwise it should return the default, which is `true`. If someone uses `use_transactional_tests=` then it will overwrite the backwards-compatible method with whatever they set.
* `ActiveJob::Base#queue_adapter` is now a `class_attribute`Tamir Duberstein2015-03-112-5/+46
| | | | | | This allows different `queue_adapters` to be used in each `ActiveJob` class heirarchy. Previously, all subclasses used a single global queue adapter.
* `ActiveJob::QueueAdapters::*` are no longer singletonsTamir Duberstein2015-03-114-4/+28
|
* Fix naming collisionTamir Duberstein2015-03-111-1/+1
|
* Fix leaky `only: …` option for Active Job assertionsJeremy Kemper2015-03-061-0/+8
| | | | | | | The filter was set on the pseudo-global TestAdapter but not restored to its original value. See e818f65770fe115ab1cc7fbacc0e7e94d92af6a4
* Fixed ActiveJob integration testsCristian Bica2015-03-052-2/+4
|
* `ActiveJob::QueueAdapters::TestAdapter` is now a singletonTamir Duberstein2015-02-231-1/+1
| | | | | | | | | Since `ActiveJob::TestHelper` globally sets `ActiveJob::Base.queue_adapter` on setup, there is no benefit in instantiating a new `TestAdapter` per tests. The original rationale was to allow parallel tests to run without interference, but since they'd all mutate the global `ActiveJob::Base.queue_adapter`, that was never realized.
* Changed the AJADAPTER to AJ_ADAPTERJeroen van Baarsen2015-02-225-6/+6
| | | | | | | * This allows for easier reading, since those are two words, so they should be split by _ Signed-off-by: Jeroen van Baarsen <jeroenvanbaarsen@gmail.com>