aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2011-07-24 16:15:55 +0200
committerMichał Górny <mgorny@gentoo.org>2011-07-24 16:38:22 +0200
commit0b2bb643556bdfaf5085b87f3b78dbea6bcdc43e (patch)
tree6f8e3aeccae240551554e74ad912de23825be90b /pmstestsuite/library/standard
parentAdd a base class for eclass dep tests. (diff)
downloadpms-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.py34
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)