3413: code review update
[arvados.git] / services / api / test / unit / job_test.rb
index e924cddfc5221039ffadd8d9d16e1854aac01ad5..29ce969ac8931ec15bc90bcb23923b31eb8a8da0 100644 (file)
@@ -158,16 +158,20 @@ class JobTest < ActiveSupport::TestCase
   [
     # Each test case is of the following format
     # Array of parameters where each parameter is of the format:
-    #     attr name to be changed, attr value, (array of array of expectations OR the string "error")
+    #     attr name to be changed, attr value, and array of expectations (where each expectation is an array) OR the string "error"
     [['running', false, [['state', 'Queued']]]],
-    [['state', 'Running', [['running', true], ['started_at', 'not_nil'], ['success', 'nil']]]],
+    [['state', 'Running', 'error']],  # is_locked_by_uuid is not set
+    [['is_locked_by_uuid', 'use_current_user_uuid', [['state', 'Queued']]], ['state', 'Running', [['running', true], ['started_at', 'not_nil'], ['success', 'nil']]]],
     [['running', false, [['state', 'Queued']]], ['state', 'Complete', [['success', true]]]],
-    [['running', true, [['state', 'Running']]], ['cancelled_at', Time.now, [['state', 'Cancelled'],['running', false]]]],
-    [['running', true, [['state', 'Running']]], ['state', 'Cancelled', [['running', false],['cancelled_at', 'not_nil']]]],
-    [['running', true, [['state', 'Running']]], ['success', true, [['state', 'Complete'],['running', false]]]],
-    [['running', true, [['state', 'Running']]], ['success', 'false', [['state', 'Failed'],['running', false]]]],
-    [['running', true, [['state', 'Running']]], ['state', 'Complete', [['success', true],['running', false]]]],
-    [['running', true, [['state', 'Running']]], ['state', 'Failed', [['success', false],['running', false]]]],
+    [['running', true, [['state', 'Running']]], ['cancelled_at', Time.now, [['state', 'Cancelled'],['running', false],['started_at', 'not_nil']]]],
+    [['running', true, [['state', 'Running']]], ['state', 'Cancelled', [['running', false],['cancelled_at', 'not_nil'],['started_at', 'not_nil']]]],
+    [['running', true, [['state', 'Running']]], ['success', true, [['state', 'Complete'],['running', false],['finished_at', 'not_nil']]]],
+    [['running', true, [['state', 'Running']]], ['success', false, [['state', 'Failed'],['running', false],['finished_at', 'not_nil']]]],
+    [['running', true, [['state', 'Running']]], ['state', 'Complete', [['success', true],['running', false],['finished_at', 'not_nil']]]],
+    [['running', true, [['state', 'Running']]], ['state', 'Failed', [['success', false],['running', false],['finished_at', 'not_nil']]]],
+    [['running', true, [['state', 'Running'], ['started_at', 'not_nil']]], ['running', false, [['state', 'Queued']]]],
+    [['cancelled_at', Time.now, [['state', 'Cancelled'],['running', false]]], ['success', false, [['state', 'Cancelled'],['running', false],['finished_at', 'nil'], ['cancelled_at', 'not_nil']]]],
+    [['cancelled_at', Time.now, [['state', 'Cancelled'],['running', false]]], ['success', true, [['state', 'Cancelled'],['running', false],['finished_at', 'nil'],['cancelled_at', 'not_nil']]]],
     # potential migration cases
     [['state', nil, [['state', 'Queued']]]],
     [['state', nil, [['state', 'Queued']]], ['cancelled_at', Time.now, [['state', 'Cancelled']]]],
@@ -182,6 +186,10 @@ class JobTest < ActiveSupport::TestCase
 
       parameters.each do |parameter|
         expectations = parameter[2]
+        if parameter[1] == 'use_current_user_uuid'
+          parameter[1] = Thread.current[:user].uuid
+        end
+
         if expectations.instance_of? Array
           job[parameter[0]] = parameter[1]
           job.save!
@@ -204,6 +212,8 @@ class JobTest < ActiveSupport::TestCase
               rescued = true
             end
             assert rescued, 'Expected error'
+          else
+            raise 'I do not know how to handle this expectation'
           end
         end
       end