diff options
author | Zbysek MRAZ <zmraz@redhat.com> | 2011-06-27 17:42:54 +0200 |
---|---|---|
committer | Petr Šplíchal <psplicha@redhat.com> | 2011-06-28 07:56:38 +0200 |
commit | f96d5a4f71597207151384b6e3df3e5823bd4cd5 (patch) | |
tree | 25a7b39dcfdbe47017fdbec55317fd2fd8c1c92a | |
parent | 23fe69022a3db6a5b47b45d9b08e105506546e19 (diff) | |
download | python-nitrate-f96d5a4f71597207151384b6e3df3e5823bd4cd5.tar.gz python-nitrate-f96d5a4f71597207151384b6e3df3e5823bd4cd5.tar.xz python-nitrate-f96d5a4f71597207151384b6e3df3e5823bd4cd5.zip |
Nitrate: CaseStatus class implementation
-rw-r--r-- | Nitrate.py | 42 |
1 files changed, 39 insertions, 3 deletions
@@ -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] # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |