diff --git a/tests/integration-test b/tests/integration-test index 6e44752..742e6a2 100755 --- a/tests/integration-test +++ b/tests/integration-test @@ -107,9 +107,13 @@ class Tests(dbusmock.DBusTestCase): self.log = None self.daemon = None + # Used for dytc devices + self.tp_acpi = None + def tearDown(self): del self.testbed self.stop_daemon() + del self.tp_acpi # on failures, print daemon log errors = [x[1] for x in self._outcome.errors if x[1]] @@ -208,6 +212,12 @@ class Tests(dbusmock.DBusTestCase): return f.read() return None + def create_dytc_device(self): + self.tp_acpi = self.testbed.add_device('platform', 'thinkpad_acpi', None, + ['dytc_lapmode', '0', 'dytc_perfmode', 'H'], + [ 'DEVPATH', '/devices/platform/thinkpad_acpi' ] + ) + def assertEventually(self, condition, message=None, timeout=50): '''Assert that condition function eventually returns True. @@ -254,11 +264,7 @@ class Tests(dbusmock.DBusTestCase): def test_inhibited_transition(self): '''Test that transitions work as expected when inhibited''' - tp_acpi = self.testbed.add_device('platform', 'thinkpad_acpi', None, - ['dytc_lapmode', '0', 'dytc_perfmode', 'H'], - [ 'DEVPATH', '/devices/platform/thinkpad_acpi' ] - ) - + self.create_dytc_device() self.start_daemon() profiles = self.get_dbus_property('Profiles') @@ -269,7 +275,7 @@ class Tests(dbusmock.DBusTestCase): self.assertEqual(self.get_dbus_property('ActiveProfile'), 'performance') # Inhibit - self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '1') + self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '1') self.assertEventually(lambda: self.have_text_in_log('dytc_lapmode is now on')) self.assertEqual(self.get_dbus_property('PerformanceInhibited'), 'lap-detected') self.assertEqual(self.get_dbus_property('ActiveProfile'), 'balanced') @@ -330,11 +336,7 @@ class Tests(dbusmock.DBusTestCase): self.stop_daemon() # Verify that the Lenovo DYTC driver still gets preferred - tp_acpi = self.testbed.add_device('platform', 'thinkpad_acpi', None, - ['dytc_lapmode', '0', 'dytc_perfmode', 'H'], - [ 'DEVPATH', '/devices/platform/thinkpad_acpi' ] - ) - + self.create_dytc_device() self.start_daemon() profiles = self.get_dbus_property('Profiles') @@ -380,11 +382,7 @@ class Tests(dbusmock.DBusTestCase): def test_dytc_performance_driver(self): '''Lenovo DYTC performance driver''' - tp_acpi = self.testbed.add_device('platform', 'thinkpad_acpi', None, - ['dytc_lapmode', '0', 'dytc_perfmode', 'H'], - [ 'DEVPATH', '/devices/platform/thinkpad_acpi' ] - ) - + self.create_dytc_device() self.start_daemon() profiles = self.get_dbus_property('Profiles') @@ -396,41 +394,41 @@ class Tests(dbusmock.DBusTestCase): self.assertEqual(self.get_dbus_property('ActiveProfile'), 'balanced') # Verify that perfmode got reset - self.assertEventually(lambda: self.read_sysfs_attr(tp_acpi, 'dytc_perfmode') == b'M') + self.assertEventually(lambda: self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode') == b'M') # lapmode detected, but performance wasn't selected anyway - self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '1') + self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '1') self.assertEventually(lambda: self.get_dbus_property('PerformanceInhibited') == 'lap-detected') self.assertEqual(self.get_dbus_property('ActiveProfile'), 'balanced') # Reset lapmode - self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '0') + self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '0') self.assertEventually(lambda: self.get_dbus_property('PerformanceInhibited') == '') # Set performance mode self.set_dbus_property('ActiveProfile', GLib.Variant.new_string('performance')) self.assertEqual(self.get_dbus_property('ActiveProfile'), 'performance') - self.assertEventually(lambda: self.read_sysfs_attr(tp_acpi, 'dytc_perfmode') == b'H') + self.assertEventually(lambda: self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode') == b'H') # And turn on lapmode - self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '1') - self.assertEventually(lambda: self.read_sysfs_attr(tp_acpi, 'dytc_perfmode') == b'M') + self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '1') + self.assertEventually(lambda: self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode') == b'M') self.assertEqual(self.get_dbus_property('ActiveProfile'), 'balanced') self.assertEqual(self.get_dbus_property('PerformanceInhibited'), 'lap-detected') # Turn off lapmode, profile stays balanced - self.testbed.set_attribute(tp_acpi, 'dytc_lapmode', '0') + self.testbed.set_attribute(self.tp_acpi, 'dytc_lapmode', '0') self.assertEventually(lambda: self.get_dbus_property('PerformanceInhibited') == '') - self.assertEqual(self.read_sysfs_attr(tp_acpi, 'dytc_perfmode'), b'M') + self.assertEqual(self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode'), b'M') # Switch to power-saver mode self.set_dbus_property('ActiveProfile', GLib.Variant.new_string('power-saver')) - self.assertEventually(lambda: self.read_sysfs_attr(tp_acpi, 'dytc_perfmode') == b'L') + self.assertEventually(lambda: self.read_sysfs_attr(self.tp_acpi, 'dytc_perfmode') == b'L') self.assertEqual(self.get_dbus_property('ActiveProfile'), 'power-saver') # And mimick a user pressing a Fn+H - with open(os.path.join(self.testbed.get_root_dir() + tp_acpi, "dytc_perfmode"), 'w') as perfmode: + with open(os.path.join(self.testbed.get_root_dir() + self.tp_acpi, "dytc_perfmode"), 'w') as perfmode: perfmode.write('H') self.assertEventually(lambda: self.get_dbus_property('ActiveProfile') == 'performance')