summaryrefslogtreecommitdiffstats
path: root/ipalib/tests/test_plugable.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-08 20:39:34 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-08 20:39:34 +0000
commitb0976a520858ccc1120c2cf5aabfc5e03a065ced (patch)
treeb107f4d0eb8769808f375a064be18ec95ae1b1be /ipalib/tests/test_plugable.py
parentd171dc90111cad91884c3a1b3afdb8b16b7c289e (diff)
downloadfreeipa.git-b0976a520858ccc1120c2cf5aabfc5e03a065ced.tar.gz
freeipa.git-b0976a520858ccc1120c2cf5aabfc5e03a065ced.tar.xz
freeipa.git-b0976a520858ccc1120c2cf5aabfc5e03a065ced.zip
83: Added unit tests for plugable.Abstract
Diffstat (limited to 'ipalib/tests/test_plugable.py')
-rw-r--r--ipalib/tests/test_plugable.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/ipalib/tests/test_plugable.py b/ipalib/tests/test_plugable.py
index 232fbd71..ad1645f1 100644
--- a/ipalib/tests/test_plugable.py
+++ b/ipalib/tests/test_plugable.py
@@ -61,6 +61,56 @@ def test_valid_identifier():
raises(errors.NameSpaceError, f, name.upper())
+def test_Abstract():
+ cls = plugable.Abstract
+
+ class example(cls):
+ __public__ = frozenset((
+ 'some_method',
+ 'some_property',
+ ))
+
+ # Test using str:
+ assert example.implements('some_method')
+ assert not example.implements('another_method')
+
+ # Test using frozenset:
+ assert example.implements(frozenset(['some_method']))
+ assert not example.implements(
+ frozenset(['some_method', 'another_method'])
+ )
+
+ # Test using another object/class with __public__ frozenset:
+ assert example.implements(example)
+ assert example().implements(example)
+ assert example.implements(example())
+ assert example().implements(example())
+
+ class subset(cls):
+ __public__ = frozenset((
+ 'some_property',
+ ))
+ assert example.implements(subset)
+ assert not subset.implements(example)
+
+ class superset(cls):
+ __public__ = frozenset((
+ 'some_method',
+ 'some_property',
+ 'another_property',
+ ))
+ assert not example.implements(superset)
+ assert superset.implements(example)
+
+ class any_object(object):
+ __public__ = frozenset((
+ 'some_method',
+ 'some_property',
+ ))
+ assert example.implements(any_object)
+ assert example.implements(any_object())
+
+
def test_Plugin():
cls = plugable.Plugin
assert type(cls.name) is property