2 load 'test/functional/arvados/v1/git_setup.rb'
4 class Arvados::V1::JobReuseControllerTest < ActionController::TestCase
5 fixtures :repositories, :users, :jobs, :links
7 # See git_setup.rb for the commit log for test.git.tar
10 test "test_reuse_job" do
11 @controller = Arvados::V1::JobsController.new
12 authorize_with :active
15 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
18 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
22 assert_response :success
23 assert_not_nil assigns(:object)
24 new_job = JSON.parse(@response.body)
25 assert_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
26 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
29 test "test_reuse_job_range" do
30 @controller = Arvados::V1::JobsController.new
31 authorize_with :active
34 minimum_script_version: "tag1",
35 script_version: "master",
38 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
42 assert_response :success
43 assert_not_nil assigns(:object)
44 new_job = JSON.parse(@response.body)
45 assert_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
46 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
49 test "test_cannot_reuse_job_different_input" do
50 @controller = Arvados::V1::JobsController.new
51 authorize_with :active
54 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
57 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
61 assert_response :success
62 assert_not_nil assigns(:object)
63 new_job = JSON.parse(@response.body)
64 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
65 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
68 test "test_cannot_reuse_job_different_version" do
69 @controller = Arvados::V1::JobsController.new
70 authorize_with :active
73 script_version: "master",
76 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
80 assert_response :success
81 assert_not_nil assigns(:object)
82 new_job = JSON.parse(@response.body)
83 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
84 assert_equal '077ba2ad3ea24a929091a9e6ce545c93199b8e57', new_job['script_version']
87 test "test_cannot_reuse_job_submitted_nondeterministic" do
88 @controller = Arvados::V1::JobsController.new
89 authorize_with :active
92 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
95 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
98 nondeterministic: true
100 assert_response :success
101 assert_not_nil assigns(:object)
102 new_job = JSON.parse(@response.body)
103 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
104 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
107 test "test_cannot_reuse_job_past_nondeterministic" do
108 @controller = Arvados::V1::JobsController.new
109 authorize_with :active
112 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
115 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
119 assert_response :success
120 assert_not_nil assigns(:object)
121 new_job = JSON.parse(@response.body)
122 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykyyy', new_job['uuid']
123 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
126 test "test_cannot_reuse_job_no_permission" do
127 @controller = Arvados::V1::JobsController.new
128 authorize_with :spectator
131 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
134 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
138 assert_response :success
139 assert_not_nil assigns(:object)
140 new_job = JSON.parse(@response.body)
141 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
142 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
145 test "test_cannot_reuse_job_excluded" do
146 @controller = Arvados::V1::JobsController.new
147 authorize_with :active
150 minimum_script_version: "31ce37fe365b3dc204300a3e4c396ad333ed0556",
151 script_version: "master",
153 exclude_script_versions: ["tag1"],
155 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
159 assert_response :success
160 assert_not_nil assigns(:object)
161 new_job = JSON.parse(@response.body)
162 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
163 assert_equal '077ba2ad3ea24a929091a9e6ce545c93199b8e57', new_job['script_version']