Index: tools/telemetry/telemetry/user_story/shared_user_story_state.py |
diff --git a/tools/telemetry/telemetry/user_story/shared_user_story_state.py b/tools/telemetry/telemetry/user_story/shared_user_story_state.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..414cd319c49cbe16ae4f25cb1a28eed26c06c480 |
--- /dev/null |
+++ b/tools/telemetry/telemetry/user_story/shared_user_story_state.py |
@@ -0,0 +1,63 @@ |
+# Copyright 2014 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+ |
+class SharedUserStoryState(object): |
+ """A class that manages the test state across multiple user stories. |
+ It's styled on unittest.TestCase for handling test setup & teardown logic. |
+ |
+ """ |
+ |
+ def __init__(self, test, options, user_story_set): |
+ """ This method is styled on unittest.TestCase.setUpClass. |
+ Override to do any action before running user stories that |
+ share this same state. |
+ Args: |
+ test: a page_test.PageTest instance. |
+ options: a BrowserFinderOptions instance that contains command line |
+ options. |
+ user_story_set: a user_story_set.UserStorySet instance. |
+ """ |
+ pass |
+ |
+ @property |
+ def platform(self): |
+ """ Override to return the platform which user stories that share this same |
+ state will be run on. |
+ """ |
+ raise NotImplementedError() |
+ |
+ def WillRunUserStory(self, user_story): |
+ """ Override to do any action before running each one of all user stories |
+ that share this same state. |
+ This method is styled on unittest.TestCase.setUp. |
+ """ |
+ raise NotImplementedError() |
+ |
+ def DidRunUserStory(self, results): |
+ """ Override to do any action after running each of all user stories that |
+ share this same state. |
+ This method is styled on unittest.TestCase.tearDown. |
+ """ |
+ raise NotImplementedError() |
+ |
+ def GetTestExpectationAndSkipValue(self, expectations): |
+ """ Return test expectation and skip value instance in case expectation |
+ is 'skip'. This is run after WillRunUserStory and before RunUserStory. |
+ """ |
+ raise NotImplementedError() |
+ |
+ def RunUserStory(self, results): |
+ """ Override to do any action before running each one of all user stories |
+ that share this same state. |
+ This method is styled on unittest.TestCase.run. |
+ """ |
+ raise NotImplementedError() |
+ |
+ def TearDownState(self, results): |
+ """ Override to do any action after running multiple user stories that |
+ share this same state. |
+ This method is styled on unittest.TestCase.tearDownClass. |
+ """ |
+ raise NotImplementedError() |