summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZbysek MRAZ <zmraz@redhat.com>2011-06-27 15:11:28 +0200
committerPetr Šplíchal <psplicha@redhat.com>2011-06-27 15:42:41 +0200
commit464c3d048397d2e0cba78465c45757175c213e0a (patch)
tree61622dbc95ca3fafe081eb0e3848558b14055431
parent1482a4bba02d4d7c5b4721faab52ed7084681a21 (diff)
downloadpython-nitrate-464c3d048397d2e0cba78465c45757175c213e0a.tar.gz
python-nitrate-464c3d048397d2e0cba78465c45757175c213e0a.tar.xz
python-nitrate-464c3d048397d2e0cba78465c45757175c213e0a.zip
Nitrate: Priority class implementation
-rw-r--r--Nitrate.py42
1 files changed, 39 insertions, 3 deletions
diff --git a/Nitrate.py b/Nitrate.py
index d03f619..bcb36e1 100644
--- a/Nitrate.py
+++ b/Nitrate.py
@@ -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]
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~