diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2009-01-19 21:10:42 -0700 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2009-01-19 21:10:42 -0700 |
commit | 55fba5420d8ea57931937728102094492ca73d86 (patch) | |
tree | 65593f7af4809a6ae74c3533860c7840181fb76d /tests/util.py | |
parent | bae9dd7c073a8a23f71b1df0fa4cb6d90b00a337 (diff) | |
download | freeipa-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.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/util.py b/tests/util.py index af4c2393..f5899dfa 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) |