summaryrefslogtreecommitdiff
path: root/testlib.py
diff options
context:
space:
mode:
authorPierre-Yves David <pierre-yves.david@logilab.fr>2008-08-22 15:25:39 +0200
committerPierre-Yves David <pierre-yves.david@logilab.fr>2008-08-22 15:25:39 +0200
commitd861299087e1ec9d9d6fd3ea254b3d549d6454e4 (patch)
tree6256a18994eb74323684536d99e4e00cb6bde6a7 /testlib.py
parent1530f6a9ef48332b1f096c0a0e560bb29ec1f25f (diff)
downloadlogilab-common-d861299087e1ec9d9d6fd3ea254b3d549d6454e4.tar.gz
add tag decorator to tag function and class
Diffstat (limited to 'testlib.py')
-rw-r--r--testlib.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/testlib.py b/testlib.py
index 6f0f685..8433dcb 100644
--- a/testlib.py
+++ b/testlib.py
@@ -1696,3 +1696,35 @@ def enable_dbc(*args):
class AttrObject: # XXX cf mock_object
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
+
+
+#class Tagged(object):
+# def __init__(self, tags, callable):
+# self.__tag = tags
+# self.__callable = callable
+#
+# def __getttr__(self, attr):
+# return getattr(self, attr)
+#
+# def __setattr__(self, attr, value):
+# return setattr(self.__callable, attr, value)
+
+def tag(*args):
+ """descriptor adding tag to a function"""
+ def desc(func):
+ assert not hasattr(func, 'tags')
+ setattr(func, 'tags', Tags(args))
+ return func
+ return desc
+
+
+
+class Tags(set):
+
+ def __getitem__(self, key):
+ return key in self
+
+
+
+ def match(self, exp):
+ return eval(exp, {}, self)