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",
17 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
21 assert_response :success
22 assert_not_nil assigns(:object)
23 new_job = JSON.parse(@response.body)
24 assert_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
25 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
28 test "test_reuse_job_range" do
29 @controller = Arvados::V1::JobsController.new
30 authorize_with :active
33 minimum_script_version: "tag1",
34 script_version: "master",
36 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
40 assert_response :success
41 assert_not_nil assigns(:object)
42 new_job = JSON.parse(@response.body)
43 assert_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
44 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
47 test "test_cannot_reuse_job_different_input" do
48 @controller = Arvados::V1::JobsController.new
49 authorize_with :active
52 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
54 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
58 assert_response :success
59 assert_not_nil assigns(:object)
60 new_job = JSON.parse(@response.body)
61 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
62 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
65 test "test_cannot_reuse_job_different_version" do
66 @controller = Arvados::V1::JobsController.new
67 authorize_with :active
70 script_version: "master",
72 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
76 assert_response :success
77 assert_not_nil assigns(:object)
78 new_job = JSON.parse(@response.body)
79 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
80 assert_equal '077ba2ad3ea24a929091a9e6ce545c93199b8e57', new_job['script_version']
83 test "test_cannot_reuse_job_submitted_nondeterministic" do
84 @controller = Arvados::V1::JobsController.new
85 authorize_with :active
88 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
90 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
93 nondeterministic: true
95 assert_response :success
96 assert_not_nil assigns(:object)
97 new_job = JSON.parse(@response.body)
98 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
99 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
102 test "test_cannot_reuse_job_past_nondeterministic" do
103 @controller = Arvados::V1::JobsController.new
104 authorize_with :active
107 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
109 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
113 assert_response :success
114 assert_not_nil assigns(:object)
115 new_job = JSON.parse(@response.body)
116 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykyyy', new_job['uuid']
117 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
120 test "test_cannot_reuse_job_no_permission" do
121 @controller = Arvados::V1::JobsController.new
122 authorize_with :spectator
125 script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
127 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
131 assert_response :success
132 assert_not_nil assigns(:object)
133 new_job = JSON.parse(@response.body)
134 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
135 assert_equal '4fe459abe02d9b365932b8f5dc419439ab4e2577', new_job['script_version']
138 test "test_cannot_reuse_job_excluded" do
139 @controller = Arvados::V1::JobsController.new
140 authorize_with :active
143 minimum_script_version: "31ce37fe365b3dc204300a3e4c396ad333ed0556",
144 script_version: "master",
145 exclude_script_versions: ["tag1"],
147 input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
151 assert_response :success
152 assert_not_nil assigns(:object)
153 new_job = JSON.parse(@response.body)
154 assert_not_equal 'zzzzz-8i9sb-cjs4pklxxjykqqq', new_job['uuid']
155 assert_equal '077ba2ad3ea24a929091a9e6ce545c93199b8e57', new_job['script_version']