Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(655)

Unified Diff: frontend/planner/support.py

Issue 1595019: Merge remote branch 'origin/upstream' into tempbranch (Closed)
Patch Set: Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « frontend/planner/rpc_utils_unittest.py ('k') | frontend/tko/models.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frontend/planner/support.py
diff --git a/frontend/planner/support.py b/frontend/planner/support.py
new file mode 100644
index 0000000000000000000000000000000000000000..bfd141758f67558d6412065f509cec74f27eb47f
--- /dev/null
+++ b/frontend/planner/support.py
@@ -0,0 +1,84 @@
+import common
+from autotest_lib.frontend.afe import model_attributes as afe_model_attributes
+
+class TestPlanController(object):
+ """
+ Allows a TestPlanSupport to manage the test plan.
+
+ Contains the variables that the TestPlanSupport methods can manipulate, as
+ well as methods for controlling the flow of the test plan.
+ """
+ def __init__(self, machine, test_alias, *args, **kwargs):
+ super(TestPlanController, self).__init__(*args, **kwargs)
+ self.machine = machine
+ self.test_alias = test_alias
+
+ self._skip = False
+ self._fail = None
+ self._unblock = False
+
+ self._reboot_before = afe_model_attributes.RebootBefore.IF_DIRTY
+ self._reboot_after = afe_model_attributes.RebootAfter.ALWAYS
+ self._run_verify = True
+
+
+ def skip_test(self):
+ """
+ Call this in execute_before() to skip the current test.
+ """
+ self._skip = True
+
+
+ def fail_test(self, reason, attributes={}):
+ """
+ Fails the test with the reason and optional attributes provided.
+
+ Call this in execute_before() to force the test to fail, setting the
+ reason to the provided reason. You may optionally specify some test
+ attributes to set as well, as a dictionary.
+ """
+ self._fail = (reason, attributes)
+
+
+ def unblock(self):
+ """
+ Call this in execute_after() to keep the host unblocked.
+
+ Hosts will block by default if a test fails. If this has been called,
+ the host will be unblocked and will continue in the plan.
+
+ You do not need to call this method for the test plan to continue if the
+ test succeeded. Calling this method from a successful run has no effect.
+ """
+ self._unblock = True
+
+
+ def set_reboot_before(self, reboot_before):
+ """
+ Sets the upcoming job's "Reboot Before" option.
+
+ Must be a value from the RebootBefore frontend model attributes.
+ Defaults to IF_DIRTY.
+ """
+ assert reboot_before in afe_model_attributes.RebootBefore.values
+ self._reboot_before = reboot_before
+
+
+ def set_reboot_after(self, reboot_after):
+ """
+ Sets the upcoming job's "Reboot After" option.
+
+ Must be a value from the RebootAfter frontend model attributes.
+ Defaults to ALWAYS.
+ """
+ assert reboot_after in afe_model_attributes.RebootAfter.values
+ self._reboot_after = reboot_after
+
+
+ def set_run_verify(self, run_verify):
+ """
+ Sets whether or not the job should run the "Verify" stage.
+
+ Defaults to True.
+ """
+ self._run_verify = run_verify
« no previous file with comments | « frontend/planner/rpc_utils_unittest.py ('k') | frontend/tko/models.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698