diff options
author | 2011-07-24 16:15:55 +0200 | |
---|---|---|
committer | 2011-07-24 16:38:22 +0200 | |
commit | 0b2bb643556bdfaf5085b87f3b78dbea6bcdc43e (patch) | |
tree | 6f8e3aeccae240551554e74ad912de23825be90b /pmstestsuite/library/standard | |
parent | Add a base class for eclass dep tests. (diff) | |
download | pms-test-suite-0b2bb643556bdfaf5085b87f3b78dbea6bcdc43e.tar.gz pms-test-suite-0b2bb643556bdfaf5085b87f3b78dbea6bcdc43e.tar.bz2 pms-test-suite-0b2bb643556bdfaf5085b87f3b78dbea6bcdc43e.zip |
'D-Bus wrap' eclass dependency test case.
Diffstat (limited to 'pmstestsuite/library/standard')
-rw-r--r-- | pmstestsuite/library/standard/dbus_case.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/pmstestsuite/library/standard/dbus_case.py b/pmstestsuite/library/standard/dbus_case.py index d8fb068..8bc1c99 100644 --- a/pmstestsuite/library/standard/dbus_case.py +++ b/pmstestsuite/library/standard/dbus_case.py @@ -5,7 +5,8 @@ import dbus.service from pmstestsuite.library.case import EbuildTestCase -from pmstestsuite.library.depend_case import EbuildDependencyTestCase +from pmstestsuite.library.depend_case import EbuildDependencyTestCase, \ + EclassDependencyTestCase from pmstestsuite.library.eclass_case import EclassTestCase from pmstestsuite.dbus_handler import DBusHandler, dbus_interface_name, dbus_object_prefix @@ -168,3 +169,34 @@ class DBusEbuildDependencyTestCase(EbuildDependencyTestCase): def check_result(self, pm): return self.dbus_started != self.expect_failure \ and self.check_dbus_result('\n'.join(self.dbus_output), pm) + +class DBusEclassDependencyTestCase(EclassDependencyTestCase): + """ D-Bus capable eclass dependency test case. """ + + inherits = ['pms-test-dbus'] + + def __init__(self, *args, **kwargs): + """ Initialize the test case and the D-Bus object for it. """ + EclassDependencyTestCase.__init__(self, *args, **kwargs) + self._dbusobj = RunningTest(self) + + def _finalize(self): + """ Finalize the object, ensuring pkg_setup() will be called. """ + if self.phase_funcs['pkg_setup']: + self.phase_funcs['pkg_setup'].insert(0, 'pms-test-dbus_pkg_setup') + + def check_dbus_result(self, output, pm): + """ + Check whether the <output> sent through D-Bus matches expected test + output. + + Return True if it does, False otherwise. + + The default implementation simply checks whether the test was merged + alike EclassDependencyTestCase.check_result(). + """ + return EclassDependencyTestCase.check_result(self, pm) + + def check_result(self, pm): + return self.dbus_started != self.expect_failure \ + and self.check_dbus_result('\n'.join(self.dbus_output), pm) |