Index: verification/base.py |
diff --git a/verification/base.py b/verification/base.py |
index c797c130c6b95d4e4706e1d79be9cb589c510889..e9178f11084217b62b1965a68cb6436821ca6411 100644 |
--- a/verification/base.py |
+++ b/verification/base.py |
@@ -44,8 +44,36 @@ class Verified(model.PersistentMixIn): |
return False |
return any(v.failed() for v in self.verifications.itervalues()) |
+ def ignored(self): |
+ """This item shouldn't be processed any further. |
-class SimpleStatus(model.PersistentMixIn): |
+ At least one verification step marked it as ignored. |
+ """ |
+ if not self.verifications: |
+ return False |
+ return any(v.ignored() for v in self.verifications.itervalues()) |
+ |
+ def done(self): |
+ """Processing on this item is done.""" |
+ return self.ignored() or self.succeeded() or self.failed() |
+ |
+ |
+class IVerifierStatus(model.PersistentMixIn): |
+ """Interface for objects in Verified.verifications dictionary.""" |
+ def succeeded(self): |
+ raise NotImplementedError() |
+ |
+ def failed(self): |
+ raise NotImplementedError() |
+ |
+ def ignored(self): |
+ raise NotImplementedError() |
+ |
+ def done(self): |
+ return self.ignored() or self.succeeded() or self.failed() |
+ |
+ |
+class SimpleStatus(IVerifierStatus): |
"""Base class to be used for simple true/false verifiers.""" |
def __init__(self, state=None): |
super(SimpleStatus, self).__init__() |
@@ -57,6 +85,9 @@ class SimpleStatus(model.PersistentMixIn): |
def failed(self): |
return self.state is False |
+ def ignored(self): |
+ return False |
+ |
class Verifier(object): |
name = None |