summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZbysek MRAZ <zmraz@redhat.com>2011-06-27 17:42:54 +0200
committerPetr Šplíchal <psplicha@redhat.com>2011-06-28 07:56:38 +0200
commitf96d5a4f71597207151384b6e3df3e5823bd4cd5 (patch)
tree25a7b39dcfdbe47017fdbec55317fd2fd8c1c92a
parent23fe69022a3db6a5b47b45d9b08e105506546e19 (diff)
downloadpython-nitrate-f96d5a4f71597207151384b6e3df3e5823bd4cd5.tar.gz
python-nitrate-f96d5a4f71597207151384b6e3df3e5823bd4cd5.tar.xz
python-nitrate-f96d5a4f71597207151384b6e3df3e5823bd4cd5.zip
Nitrate: CaseStatus class implementation
-rw-r--r--Nitrate.py42
1 files changed, 39 insertions, 3 deletions
diff --git a/Nitrate.py b/Nitrate.py
index 9e0cfc3..d38e11b 100644
--- a/Nitrate.py
+++ b/Nitrate.py
@@ -441,9 +441,45 @@ class Tag(Nitrate):
class CaseStatus(Nitrate):
""" Test case status. """
- id = property(_getter("id"), doc="Test case status id")
- def __init__(self, id):
- self._id = id
+
+ _casestatuses = ['PAD', 'PROPOSED', 'CONFIRMED', 'DISABLED', 'NEED_UPDATE']
+
+ def __init__(self, casestatus):
+ """
+ Takes numeric status id (1-4) or status name which is one of:
+ PROPOSED, CONFIRMED, DISABLED, NEED_UPDATE
+ """
+ if isinstance(casestatus, int):
+ if casestatus < 1 or casestatus > 4:
+ raise NitrateError("Not a valid casestatus id: '{0}'".format(casestatus))
+ self._id = casestatus
+ else:
+ try:
+ self._id = self._casestatuses.index(casestatus)
+ except ValueError:
+ raise NitrateError("Invalid casestatus '{0}'".format(casestatus))
+
+ def __str__(self):
+ """ Return casestatus name for printing. """
+ return self.name
+
+ def __eq__(self, other):
+ """ Handle correctly casestatus equality. """
+ return self._id == other._id
+
+ def __ne__(self, other):
+ """ Handle correctly casestatus inequality. """
+ return self._id != other._id
+
+ @property
+ def id(self):
+ """ Numeric casestatus id. """
+ return self._id
+
+ @property
+ def name(self):
+ """ Human readable casestatus name. """
+ return self._casestatuses[self._id]
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~