summaryrefslogtreecommitdiffstats
path: root/tests/util.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2009-01-19 21:10:42 -0700
committerJason Gerard DeRose <jderose@redhat.com>2009-01-19 21:10:42 -0700
commit55fba5420d8ea57931937728102094492ca73d86 (patch)
tree65593f7af4809a6ae74c3533860c7840181fb76d /tests/util.py
parentbae9dd7c073a8a23f71b1df0fa4cb6d90b00a337 (diff)
downloadfreeipa-55fba5420d8ea57931937728102094492ca73d86.tar.gz
freeipa-55fba5420d8ea57931937728102094492ca73d86.tar.xz
freeipa-55fba5420d8ea57931937728102094492ca73d86.zip
Added rpc.xmlclient backend plugin for forwarding; added corresponding unit tests
Diffstat (limited to 'tests/util.py')
-rw-r--r--tests/util.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/util.py b/tests/util.py
index af4c23934..f5899dfab 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -344,3 +344,48 @@ class dummy_ungettext(object):
if n == 1:
return self.translation_singular
return self.translation_plural
+
+
+class DummyMethod(object):
+ def __init__(self, callback, name):
+ self.__callback = callback
+ self.__name = name
+
+ def __call__(self, *args, **kw):
+ return self.__callback(self.__name, args, kw)
+
+
+class DummyClass(object):
+ def __init__(self, *calls):
+ self.__calls = calls
+ self.__i = 0
+ for (name, args, kw, result) in calls:
+ method = DummyMethod(self.__process, name)
+ setattr(self, name, method)
+
+ def __process(self, name_, args_, kw_):
+ if self.__i >= len(self.__calls):
+ raise AssertionError(
+ 'extra call: %s, %r, %r' % (name, args, kw)
+ )
+ (name, args, kw, result) = self.__calls[self.__i]
+ self.__i += 1
+ i = self.__i
+ if name_ != name:
+ raise AssertionError(
+ 'call %d should be to method %r; got %r' % (i, name, name_)
+ )
+ if args_ != args:
+ raise AssertionError(
+ 'call %d to %r should have args %r; got %r' % (i, name, args, args_)
+ )
+ if kw_ != kw:
+ raise AssertionError(
+ 'call %d to %r should have kw %r, got %r' % (i, name, kw, kw_)
+ )
+ if isinstance(result, Exception):
+ raise result
+ return result
+
+ def _calledall(self):
+ return self.__i == len(self.__calls)