diff options
Diffstat (limited to 'ipalib/tests/tstutil.py')
-rw-r--r-- | ipalib/tests/tstutil.py | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/ipalib/tests/tstutil.py b/ipalib/tests/tstutil.py index 63c75665..7b3a2d5e 100644 --- a/ipalib/tests/tstutil.py +++ b/ipalib/tests/tstutil.py @@ -21,6 +21,8 @@ Utility functions for the unit tests. """ +import inspect + class ExceptionNotRaised(Exception): """ Exception raised when an *expected* exception is *not* raised during a @@ -91,9 +93,25 @@ def is_prop(prop): class ClassChecker(object): - - def new(self, *args, **kw): - return self.cls(*args, **kw) - - def get_sub(self): - raise NotImplementedError('get_sub()') + __cls = None + __subcls = None + + def __get_cls(self): + if self.__cls is None: + self.__cls = self._cls + assert inspect.isclass(self.__cls) + return self.__cls + cls = property(__get_cls) + + def __get_subcls(self): + if self.__subcls is None: + self.__subcls = self.get_subcls() + assert inspect.isclass(self.__subcls) + return self.__subcls + subcls = property(__get_subcls) + + def get_subcls(self): + raise NotImplementedError( + self.__class__.__name__, + 'get_subcls()' + ) |