[autotest] Fix scheduler_models_unittest.

These unittests were still believing that we can only schedule one
special task at a time.  That is no longer true.

BUG=chromium:255170
TEST=unit

Change-Id: Ia8a0e0b09ee92f163e95d74efc03ad3498630ffc
Reviewed-on: https://gerrit.chromium.org/gerrit/60262
Commit-Queue: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
diff --git a/scheduler/scheduler_models_unittest.py b/scheduler/scheduler_models_unittest.py
index df7fe35..92b5d56 100755
--- a/scheduler/scheduler_models_unittest.py
+++ b/scheduler/scheduler_models_unittest.py
@@ -252,7 +252,7 @@
         def _mock_create(**kwargs):
             task = models.SpecialTask(**kwargs)
             task.save()
-            self._task = task
+            self._tasks.append(task)
         self.god.stub_with(models.SpecialTask.objects, 'create', _mock_create)
 
 
@@ -261,10 +261,10 @@
         Calls HQE._do_schedule_pre_job_tasks() and returns the created special
         task
         """
-        self._task = None
+        self._tasks = []
         queue_entry = scheduler_models.HostQueueEntry.fetch('id = 1')[0]
         queue_entry._do_schedule_pre_job_tasks()
-        return self._task
+        return self._tasks
 
 
     def test_job_request_abort(self):
@@ -306,19 +306,21 @@
         self.assertFalse(job._atomic_and_has_started())
 
 
-    def _check_special_task(self, task, task_type, queue_entry_id=None):
-        self.assertEquals(task.task, task_type)
-        self.assertEquals(task.host.id, 1)
-        if queue_entry_id:
-            self.assertEquals(task.queue_entry.id, queue_entry_id)
+    def _check_special_tasks(self, tasks, task_types):
+        self.assertEquals(len(tasks), len(task_types))
+        for task, (task_type, queue_entry_id) in zip(tasks, task_types):
+            self.assertEquals(task.task, task_type)
+            self.assertEquals(task.host.id, 1)
+            if queue_entry_id:
+                self.assertEquals(task.queue_entry.id, queue_entry_id)
 
 
     def test_run_asynchronous(self):
         self._create_job(hosts=[1, 2])
 
-        task = self._test_pre_job_tasks_helper()
+        tasks = self._test_pre_job_tasks_helper()
 
-        self._check_special_task(task, models.SpecialTask.Task.VERIFY, 1)
+        self._check_special_tasks(tasks, [(models.SpecialTask.Task.VERIFY, 1)])
 
 
     def test_run_asynchronous_skip_verify(self):
@@ -326,17 +328,17 @@
         job.run_verify = False
         job.save()
 
-        task = self._test_pre_job_tasks_helper()
+        tasks = self._test_pre_job_tasks_helper()
 
-        self.assertEquals(task, None)
+        self.assertEquals(tasks, [])
 
 
     def test_run_synchronous_verify(self):
         self._create_job(hosts=[1, 2], synchronous=True)
 
-        task = self._test_pre_job_tasks_helper()
+        tasks = self._test_pre_job_tasks_helper()
 
-        self._check_special_task(task, models.SpecialTask.Task.VERIFY, 1)
+        self._check_special_tasks(tasks, [(models.SpecialTask.Task.VERIFY, 1)])
 
 
     def test_run_synchronous_skip_verify(self):
@@ -344,9 +346,9 @@
         job.run_verify = False
         job.save()
 
-        task = self._test_pre_job_tasks_helper()
+        tasks = self._test_pre_job_tasks_helper()
 
-        self.assertEquals(task, None)
+        self.assertEquals(tasks, [])
 
 
     def test_run_atomic_group_already_started(self):
@@ -366,9 +368,12 @@
         job.reboot_before = model_attributes.RebootBefore.ALWAYS
         job.save()
 
-        task = self._test_pre_job_tasks_helper()
+        tasks = self._test_pre_job_tasks_helper()
 
-        self._check_special_task(task, models.SpecialTask.Task.CLEANUP)
+        self._check_special_tasks(tasks, [
+                (models.SpecialTask.Task.CLEANUP, None),
+                (models.SpecialTask.Task.VERIFY, None),
+            ])
 
 
     def _test_reboot_before_if_dirty_helper(self, expect_reboot):
@@ -376,12 +381,14 @@
         job.reboot_before = model_attributes.RebootBefore.IF_DIRTY
         job.save()
 
-        task = self._test_pre_job_tasks_helper()
+        tasks = self._test_pre_job_tasks_helper()
+
+        task_types = []
         if expect_reboot:
-            task_type = models.SpecialTask.Task.CLEANUP
-        else:
-            task_type = models.SpecialTask.Task.VERIFY
-        self._check_special_task(task, task_type)
+            task_types.append((models.SpecialTask.Task.CLEANUP, None))
+        task_types.append((models.SpecialTask.Task.VERIFY, None))
+
+        self._check_special_tasks(tasks, task_types)
 
 
     def test_reboot_before_if_dirty(self):