Sanity check: prevent the creation of a special task for a host that already
has an active special task. This should only ever happen due to a scheduler
bug. Dying to allow human cleanup is desirable today.
Signed-off-by: Gregory Smith <gps@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@3571 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/afe/models_test.py b/frontend/afe/models_test.py
index df9e964..143853b 100644
--- a/frontend/afe/models_test.py
+++ b/frontend/afe/models_test.py
@@ -5,6 +5,7 @@
from autotest_lib.frontend import setup_django_environment
from autotest_lib.frontend.afe import frontend_test_utils
from autotest_lib.frontend.afe import models
+from autotest_lib.frontend.afe import model_logic
class AclGroupTest(unittest.TestCase,
@@ -84,5 +85,21 @@
self.assertTrue(task.is_complete)
+ def test_prepare(self):
+ self.assertEqual(13, models.SpecialTask.prepare(agent=None, task=13))
+ class DummyAgentTask(object):
+ host = None
+ queue_entry = None
+ self.assertRaises(ValueError, models.SpecialTask.prepare,
+ DummyAgentTask(), None)
+ DummyAgentTask.TASK_TYPE = models.SpecialTask.Task.VERIFY
+ DummyAgentTask.host = models.Host.objects.create(hostname='hi')
+ task1 = models.SpecialTask.prepare(DummyAgentTask(), None)
+ task1.activate()
+ DummyAgentTask.TASK_TYPE = models.SpecialTask.Task.REPAIR
+ self.assertRaises(model_logic.ValidationError,
+ models.SpecialTask.prepare, DummyAgentTask(), None)
+
+
if __name__ == '__main__':
unittest.main()