diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-08 20:39:34 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-08 20:39:34 +0000 |
commit | b0976a520858ccc1120c2cf5aabfc5e03a065ced (patch) | |
tree | b107f4d0eb8769808f375a064be18ec95ae1b1be /ipalib/tests/test_plugable.py | |
parent | d171dc90111cad91884c3a1b3afdb8b16b7c289e (diff) | |
download | freeipa.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.py | 50 |
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 |