Index: tools/telemetry/telemetry/user_story/__init__.py |
diff --git a/tools/telemetry/telemetry/user_story/__init__.py b/tools/telemetry/telemetry/user_story/__init__.py |
index 43592d8600cb2ffbc52000092d6f90eaad43de57..3b6620ed98487b39e627d2d0315e2040b352aba8 100644 |
--- a/tools/telemetry/telemetry/user_story/__init__.py |
+++ b/tools/telemetry/telemetry/user_story/__init__.py |
@@ -3,12 +3,32 @@ |
# found in the LICENSE file. |
import re |
+from telemetry.user_story import shared_user_story_state |
_next_user_story_id = 0 |
class UserStory(object): |
- def __init__(self, name='', labels=None): |
+ """A class styled on unittest.TestCase for creating user story tests. |
+ |
+ Test should override Run to maybe start the application and perform actions |
+ onto it. To share state between different tests, one can define a |
+ shared_user_story_state which contains hooks that will be called before & |
+ after mutiple user stories run and in between runs. |
+ |
+ Args: |
+ shared_user_story_state_class: subclass of |
+ telemetry.user_story.shared_user_story_state.SharedUserStoryState. |
+ name: string name of this user story that can be used for identifying user |
+ story in results output. |
+ labels: A list or set of string labels that are used for filtering. See |
+ user_story.user_story_filter for more information. |
+ """ |
+ |
+ def __init__(self, shared_user_story_state_class, name='', labels=None): |
+ assert issubclass(shared_user_story_state_class, |
+ shared_user_story_state.SharedUserStoryState) |
+ self._shared_user_story_state_class = shared_user_story_state_class |
self._name = name |
global _next_user_story_id |
self._id = _next_user_story_id |
@@ -26,6 +46,10 @@ class UserStory(object): |
return self._labels |
@property |
+ def shared_user_story_state_class(self): |
+ return self._shared_user_story_state_class |
+ |
+ @property |
def id(self): |
return self._id |