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,
            )
示例#2
0
    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()
示例#3
0
    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.*"')