summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2014-02-12 16:17:39 +0100
committerPetr Viktorin <pviktori@redhat.com>2014-03-25 14:18:12 +0100
commit4f302f650070ea50975c0f2bd778a4f864040e43 (patch)
tree50b9a8a61998fd771536d59c1c04913746ebd98c /ipatests
parent6ecc4600e9370a637916360396f18699e4b7f59b (diff)
downloadfreeipa-4f302f650070ea50975c0f2bd778a4f864040e43.tar.gz
freeipa-4f302f650070ea50975c0f2bd778a4f864040e43.tar.xz
freeipa-4f302f650070ea50975c0f2bd778a4f864040e43.zip
Allow indexing API object types by class
This allows code like: from ipalib.plugins.dns import dnszone_mod api.Command[dnszone_mod] This form should be preferred when getting specific objects because it ensures that the appropriate plugin is imported. https://fedorahosted.org/freeipa/ticket/4185 Reviewed-By: Martin Kosek <mkosek@redhat.com>
Diffstat (limited to 'ipatests')
-rw-r--r--ipatests/test_ipalib/test_base.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/ipatests/test_ipalib/test_base.py b/ipatests/test_ipalib/test_base.py
index ef6c180c7..0117946bc 100644
--- a/ipatests/test_ipalib/test_base.py
+++ b/ipatests/test_ipalib/test_base.py
@@ -195,7 +195,7 @@ def membername(i):
class DummyMember(object):
def __init__(self, i):
self.i = i
- self.name = membername(i)
+ self.name = self.__name__ = membername(i)
def gen_members(*indexes):
@@ -283,8 +283,10 @@ class test_NameSpace(ClassChecker):
for i in yes:
assert membername(i) in o
assert membername(i).upper() not in o
+ assert DummyMember(i) in o
for i in no:
assert membername(i) not in o
+ assert DummyMember(i) not in o
def test_getitem(self):
"""
@@ -320,9 +322,15 @@ class test_NameSpace(ClassChecker):
assert o[:-4] == members[:-4]
assert o[-9:-4] == members[-9:-4]
+ # Test retrieval by value
+ for member in members:
+ assert o[DummyMember(member.i)] is member
+
# Test that TypeError is raised with wrong type
e = raises(TypeError, o.__getitem__, 3.0)
- assert str(e) == TYPE_ERROR % ('key', (str, int, slice), 3.0, float)
+ assert str(e) == TYPE_ERROR % (
+ 'key', (str, int, slice, 'object with __name__'),
+ 3.0, float)
def test_repr(self):
"""