diff options
author | Zbysek MRAZ <zmraz@redhat.com> | 2011-06-27 15:11:28 +0200 |
---|---|---|
committer | Petr Šplíchal <psplicha@redhat.com> | 2011-06-27 15:42:41 +0200 |
commit | 464c3d048397d2e0cba78465c45757175c213e0a (patch) | |
tree | 61622dbc95ca3fafe081eb0e3848558b14055431 | |
parent | 1482a4bba02d4d7c5b4721faab52ed7084681a21 (diff) | |
download | python-nitrate-464c3d048397d2e0cba78465c45757175c213e0a.tar.gz python-nitrate-464c3d048397d2e0cba78465c45757175c213e0a.tar.xz python-nitrate-464c3d048397d2e0cba78465c45757175c213e0a.zip |
Nitrate: Priority class implementation
-rw-r--r-- | Nitrate.py | 42 |
1 files changed, 39 insertions, 3 deletions
@@ -290,9 +290,45 @@ class PlanType(Nitrate): class Priority(Nitrate): """ Test case priority. """ - id = property(_getter("id"), doc="Priority id") - def __init__(self, id): - self._id = id + + _priorities = ['P0', 'P1', 'P2', 'P3', 'P4', 'P5'] + + def __init__(self, priority): + """ + Takes numeric priority id (1-5) or priority name which is one of: + P1, P2, P3, P4, P5 + """ + self._id = priority + if isinstance(priority, int): + self._id = priority + else: + try: + self._id = self._priorities.index(priority) + except ValueError: + raise NitrateError("Invalid priority '{0}'".format(priority)) + + def __str__(self): + """ Return priority name for printing. """ + return self.name + + def __eq__(self, other): + """ Handle correctly priority equality. """ + return self._id == other._id + + def __ne__(self, other): + """ Handle correctly priority inequality. """ + return self._id != other._id + + @property + def id(self): + """ Numeric priority id. """ + return self._id + + @property + def name(self): + """ Human readable priority name. """ + return self._priorities[self._id] + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |