From: Tom Clegg Date: Thu, 8 Sep 2016 20:56:42 +0000 (-0400) Subject: 9888: Add find_reusable unit test. X-Git-Tag: 1.1.0~745^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/9bad58fd3334bab5c9a09f365912a37c5f63fcdc?ds=sidebyside;hp=4418adf838ac2b3d9a09d03cb87f911b323ba6d3 9888: Add find_reusable unit test. --- diff --git a/services/api/test/fixtures/jobs.yml b/services/api/test/fixtures/jobs.yml index 584cc23f39..1a06d573d9 100644 --- a/services/api/test/fixtures/jobs.yml +++ b/services/api/test/fixtures/jobs.yml @@ -465,9 +465,9 @@ job_with_latest_version: supplied_script_version: master script_parameters: input: 1f4b0bc7583c2a7f9102c395f4ffc5e3+45 - created_at: <%= 4.minute.ago.to_s(:db) %> - started_at: <%= 3.minute.ago.to_s(:db) %> - finished_at: <%= 2.minute.ago.to_s(:db) %> + created_at: <%= 3.minute.ago.to_s(:db) %> + started_at: <%= 2.minute.ago.to_s(:db) %> + finished_at: <%= 1.minute.ago.to_s(:db) %> running: false success: true output: fa7aeb5140e2848d39b416daeef4ffc5+45 diff --git a/services/api/test/unit/job_test.rb b/services/api/test/unit/job_test.rb index 1d3abac60a..3da2c836ed 100644 --- a/services/api/test/unit/job_test.rb +++ b/services/api/test/unit/job_test.rb @@ -462,4 +462,26 @@ class JobTest < ActiveSupport::TestCase b = {'z' => [[{'b' => 'b', 'a' => 'a'}]]} assert_equal Job.deep_sort_hash(a).to_json, Job.deep_sort_hash(b).to_json end + + test 'find_reusable' do + foobar = jobs(:foobar) + example_attrs = { + script_version: foobar.script_version, + script: foobar.script, + script_parameters: foobar.script_parameters, + repository: foobar.repository, + } + + # Two matching jobs exist with identical outputs. The older one + # should be reused. + j = Job.find_reusable(example_attrs, {}, [], [users(:active)]) + assert j + assert_equal foobar.uuid, j.uuid + + # Two matching jobs exist with different outputs. Neither should + # be reused. + Job.where(uuid: jobs(:job_with_latest_version).uuid). + update_all(output: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1') + assert_nil Job.find_reusable(example_attrs, {}, [], [users(:active)]) + end end