def add_download(self, task_name, action_type, download_urls, download_sizes=[], download_md5s=[], all_task_names=[], all_change_pkgs=[], file_save_dir="/var/cache/apt/archives"): task_name = str(task_name) file_save_dir = str(file_save_dir) try: task_id = self.download_dbus_interface.AddTask( task_name, download_urls, [dbus.Int64(size) for size in download_sizes], download_md5s, file_save_dir) except Exception, e: self.init_download_dbus() task_id = self.download_dbus_interface.AddTask( task_name, download_urls, [dbus.Int64(size) for size in download_sizes], download_md5s, file_save_dir, )
def __init__(self, isdebug, bus, loop=None, prefs=None): self.isdebug = isdebug self.loop = loop if not prefs: from . import preferences prefs = preferences.Preferences(True) self.prefs = prefs self.quit = False self.driver = tidal_chrome_driver.Driver(prefs, handle_driver_error) self.baseproperties = {"CanQuit": True, "Fullscreen": False, "CanSetFullscreen": True, "CanRaise": True, "HasTrackList": False, "DesktopEntry": "tidal-google-chrome", "Identity": "Tidal-Chrome API bridge", "SupportedUriSchemes": ['tidal'], "SupportedMimeTypes": ['x-scheme-handler/tidal']} self.playerproperties = {"PlaybackStatus": "Stopped", "LoopStatus": "None", "Rate": 1.0, "Shuffle": False, "Metadata": dbus.Dictionary({ 'mpris:trackid': dbus.ObjectPath( "/org/mpris/MediaPlayer2/TrackList/NoTrack", variant_level=0), 'mpris:length': dbus.Int64(0), 'mpris:artUrl': "", 'xesam:title': "", 'xesam:album': "", 'xesam:artist': dbus.Array([], signature="s") }, signature="sv"), "Volume": 1.0, "Position": dbus.Int64(0), "MinimumRate": 1.0, "MaximumRate": 1.0, "CanGoNext": True, "CanGoPrevious": True, "CanPlay": True, "CanPause": True, "CanSeek": True, "CanControl": True} self._last_track_name = "" bus.request_name(BUS_NAME) bus_name = dbus.service.BusName(BUS_NAME, bus=bus) dbus.service.Object.__init__(self, bus_name, OPATH) self._timer_i = 0 self.tick_timer = threading.Thread(target=self.__timer_start) self.tick_timer.start()
def test_notify_device_battery(self): '''critical power level notification for device batteries''' # Set internal battery to discharging self.set_composite_battery_discharging() # Add a device battery bat2_path = '/org/freedesktop/UPower/devices/' + 'mock_MOUSE_BAT1' self.obj_upower.AddObject(bat2_path, 'org.freedesktop.UPower.Device', { 'PowerSupply': dbus.Boolean(False, variant_level=1), 'IsPresent': dbus.Boolean(True, variant_level=1), 'Model': dbus.String('Bat1', variant_level=1), 'Percentage': dbus.Double(40.0, variant_level=1), 'TimeToEmpty': dbus.Int64(1600, variant_level=1), 'EnergyFull': dbus.Double(100.0, variant_level=1), 'Energy': dbus.Double(40.0, variant_level=1), 'State': dbus.UInt32(UPowerGlib.DeviceState.DISCHARGING, variant_level=1), 'Type': dbus.UInt32(UPowerGlib.DeviceKind.MOUSE, variant_level=1), 'WarningLevel': dbus.UInt32(UPowerGlib.DeviceLevel.NONE, variant_level=1), }, dbus.Array([], signature='(ssss)')) obj_bat2 = self.system_bus_con.get_object('org.freedesktop.UPower', bat2_path) self.obj_upower.EmitSignal('', 'DeviceAdded', 'o', [bat2_path], dbus_interface='org.freedesktop.DBus.Mock') time.sleep(1) # now change the mouse battery to critical charge obj_bat2.Set('org.freedesktop.UPower.Device', 'TimeToEmpty', dbus.Int64(30, variant_level=1), dbus_interface=dbus.PROPERTIES_IFACE) obj_bat2.Set('org.freedesktop.UPower.Device', 'Energy', dbus.Double(0.5, variant_level=1), dbus_interface=dbus.PROPERTIES_IFACE) obj_bat2.Set('org.freedesktop.UPower.Device', 'WarningLevel', dbus.UInt32(UPowerGlib.DeviceLevel.CRITICAL, variant_level=1), dbus_interface=dbus.PROPERTIES_IFACE) obj_bat2.EmitSignal('', 'Changed', '', [], dbus_interface='org.freedesktop.DBus.Mock') self.obj_upower.EmitSignal('', 'DeviceChanged', 'o', [bat2_path], dbus_interface='org.freedesktop.DBus.Mock') self.check_plugin_log('EMIT: charge-critical', 2) time.sleep(0.5) # we should have gotten a notification by now notify_log = self.p_notify.stdout.read() # verify notification self.assertRegex(notify_log, b'[0-9.]+ Notify "Power" 0 ".*" ".*Wireless mouse .*low.* power.*"')