Hello community,

here is the log from the commit of package bumblebee-status for 
openSUSE:Factory checked in at 2020-06-29 21:17:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bumblebee-status (Old)
 and      /work/SRC/openSUSE:Factory/.bumblebee-status.new.3060 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bumblebee-status"

Mon Jun 29 21:17:03 2020 rev:8 rq:817610 version:2.0.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/bumblebee-status/bumblebee-status.changes        
2020-06-25 15:10:45.545992418 +0200
+++ 
/work/SRC/openSUSE:Factory/.bumblebee-status.new.3060/bumblebee-status.changes  
    2020-06-29 21:17:54.609699493 +0200
@@ -1,0 +2,13 @@
+Mon Jun 29 06:41:02 UTC 2020 - Michael Vetter <[email protected]>
+
+- Update to 2.0.4:
+  New modules:
+  * speedtest
+  Improvements:
+  * spotify buttons (#663)
+  Bugfixes:
+  * fixed CLI commands for sway (#628)
+  * re-enabled brightness reading via ACPI
+  * improved default location (see #664)
+
+-------------------------------------------------------------------

Old:
----
  bumblebee-status-2.0.3.tar.gz

New:
----
  bumblebee-status-2.0.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bumblebee-status.spec ++++++
--- /var/tmp/diff_new_pack.iIvfH8/_old  2020-06-29 21:17:55.193701300 +0200
+++ /var/tmp/diff_new_pack.iIvfH8/_new  2020-06-29 21:17:55.197701313 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           bumblebee-status
-Version:        2.0.3
+Version:        2.0.4
 Release:        0
 Summary:        Modular, theme-able status line generator for the i3 window 
manager
 License:        MIT

++++++ bumblebee-status-2.0.3.tar.gz -> bumblebee-status-2.0.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bumblebee-status-2.0.3/README.md 
new/bumblebee-status-2.0.4/README.md
--- old/bumblebee-status-2.0.3/README.md        2020-06-24 07:47:31.000000000 
+0200
+++ new/bumblebee-status-2.0.4/README.md        2020-06-28 11:00:51.000000000 
+0200
@@ -2,7 +2,8 @@
 
 [![Build 
Status](https://travis-ci.org/tobi-wan-kenobi/bumblebee-status.svg?branch=main)](https://travis-ci.org/tobi-wan-kenobi/bumblebee-status)
 [![Documentation 
Status](https://readthedocs.org/projects/bumblebee-status/badge/?version=main)](https://bumblebee-status.readthedocs.io/en/main/?badge=main)
-![AUR version](https://img.shields.io/aur/version/bumblebee-status)
+![AUR version (release)](https://img.shields.io/aur/version/bumblebee-status)
+![AUR version (git)](https://img.shields.io/aur/version/bumblebee-status-git)
 [![PyPI 
version](https://badge.fury.io/py/bumblebee-status.svg)](https://badge.fury.io/py/bumblebee-status)
 [![Code 
Climate](https://codeclimate.com/github/tobi-wan-kenobi/bumblebee-status/badges/gpa.svg)](https://codeclimate.com/github/tobi-wan-kenobi/bumblebee-status)
 [![Test 
Coverage](https://codeclimate.com/github/tobi-wan-kenobi/bumblebee-status/badges/coverage.svg)](https://codeclimate.com/github/tobi-wan-kenobi/bumblebee-status/coverage)
@@ -132,14 +133,6 @@
 
 Restart i3wm and - that's it!
 
-# User contributions
-
-[@somospocos:bumblebee-status-contrib](https://github.com/somospocos/bumblebee-status-contrib):
 Collected resources and useful tricks by @somospocos
-
-[@somospocos:bumblebee-bridge-dwm](https://github.com/somospocos/bumblebee-bridge-dwm):
 Bridge bumblebee-status output into dwm status bar
-
-[@somospocos:bumblebee-bridge-dzen2](https://github.com/somospocos/bumblebee-bridge-dzen2):
 Bridge bumblebee-status output into dzen2
-
 # Examples
 
 [List of themes](https://bumblebee-status.readthedocs.io/en/main/themes.html)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bumblebee-status-2.0.3/bumblebee_status/core/output.py 
new/bumblebee-status-2.0.4/bumblebee_status/core/output.py
--- old/bumblebee-status-2.0.3/bumblebee_status/core/output.py  2020-06-24 
07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/bumblebee_status/core/output.py  2020-06-28 
11:00:51.000000000 +0200
@@ -228,16 +228,17 @@
             if affected_modules and not module.id in affected_modules:
                 continue
             if not affected_modules and module.next_update:
-                if module.parameter("interval", "") == "never":
-                    continue
                 if now < module.next_update:
                     continue
+
             if not redraw_only:
                 module.update_wrapper()
                 if module.parameter("interval", "") != "never":
                     module.next_update = now + util.format.seconds(
                         module.parameter("interval", self.__config.interval())
                     )
+                else:
+                    module.next_update = sys.maxsize
             for widget in module.widgets():
                 if not widget.id in self.__content:
                     self.__content[widget.id] = { "minimized": False }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bumblebee-status-2.0.3/bumblebee_status/modules/contrib/brightness.py 
new/bumblebee-status-2.0.4/bumblebee_status/modules/contrib/brightness.py
--- old/bumblebee-status-2.0.3/bumblebee_status/modules/contrib/brightness.py   
2020-06-24 07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/bumblebee_status/modules/contrib/brightness.py   
2020-06-28 11:00:51.000000000 +0200
@@ -4,6 +4,8 @@
 
 Parameters:
     * brightness.step: The amount of increase/decrease on scroll in % 
(defaults to 2)
+    * brightness.device_path: The device path (defaults to 
/sys/class/backlight/intel_backlight), can contain wildcards (in this case, the 
first matching path will be used); This is only used when brightness.use_acpi 
is set to true
+    * brightness.use_acpi: If set to true, read brightness directly from the 
sys ACPI interface, using the device specified in brightness.device_path 
(defaults to false)
 
 contributed by `TheEdgeOfRage <https://github.com/TheEdgeOfRage>`_ - many 
thanks!
 """
@@ -27,8 +29,12 @@
         self.__brightness = "n/a"
         self.__readcmd = None
         step = self.parameter("step", 2)
+        self.__device_path = self.find_device(self.parameter("device_path", 
"/sys/class/backlight/intel_backlight"))
 
-        if shutil.which("light"):
+        if util.format.asbool(self.parameter("use_acpi", False)):
+            self.__readcmd = self.__acpi
+            # TODO: add setting
+        elif shutil.which("light"):
             self.__readcmd = self.__light
             self.register_cmd("light -A {}%".format(step), "light -U 
{}%".format(step))
         elif shutil.which("brightnessctl"):
@@ -42,6 +48,12 @@
                 "xbacklight +{}%".format(step), "xbacklight -{}%".format(step)
             )
 
+    def find_device(self, device_path):
+        res = glob.glob(device_path)
+        if len(res) == 0:
+            return device_path
+        return res[0]
+
     def register_cmd(self, up_cmd, down_cmd):
         core.input.register(self, button=core.input.WHEEL_UP, cmd=up_cmd)
         core.input.register(self, button=core.input.WHEEL_DOWN, cmd=down_cmd)
@@ -49,6 +61,18 @@
     def brightness(self, widget):
         return self.__brightness
 
+    def __acpi(self):
+        try:
+            backlight = 1
+            max_brightness = 1
+            with open("{}/brightness".format(self.__device_path)) as f:
+                backlight = int(f.readline())
+            with open("{}/max_brightness".format(self.__device_path)) as f:
+                max_brightness = int(f.readline())
+                return float(backlight*100)/max_brightness
+        except:
+            return "unable to read brightness from 
{}".format(self.__device_path)
+
     def __light(self):
         return util.cli.execute("light").strip()
 
@@ -62,7 +86,11 @@
 
     def update(self):
         try:
-            self.__brightness = "{:3.0f}%".format(float(self.__readcmd()))
+            tmp = self.__readcmd()
+            if isinstance(tmp, str):
+                self.__brightness = tmp
+            else:
+                self.__brightness = "{:3.0f}%".format(float(tmp))
         except:
             self.__brightness = "n/a"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bumblebee-status-2.0.3/bumblebee_status/modules/contrib/spotify.py 
new/bumblebee-status-2.0.4/bumblebee_status/modules/contrib/spotify.py
--- old/bumblebee-status-2.0.3/bumblebee_status/modules/contrib/spotify.py      
2020-06-24 07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/bumblebee_status/modules/contrib/spotify.py      
2020-06-28 11:00:51.000000000 +0200
@@ -1,22 +1,17 @@
-# pylint: disable=C0111,R0903
-
-"""Displays the current song being played
+"""Displays the current song being played and allows pausing, skipping ahead, 
and skipping back.
 
 Requires the following library:
     * python-dbus
 
 Parameters:
     * spotify.format:   Format string (defaults to '{artist} - {title}')
-      Available values are: {album}, {title}, {artist}, {trackNumber}, 
{playbackStatus}
-    * spotify.previous: Change binding for previous song (default is left 
click)
-    * spotify.next:     Change binding for next song (default is right click)
-    * spotify.pause:    Change binding for toggling pause (default is middle 
click)
-
-    Available options for spotify.previous, spotify.next and spotify.pause are:
-        LEFT_CLICK, RIGHT_CLICK, MIDDLE_CLICK, SCROLL_UP, SCROLL_DOWN
-
+      Available values are: {album}, {title}, {artist}, {trackNumber}
+    * spotify.layout:   Comma-separated list to change order of widgets 
(defaults to song, previous, pause, next)
+      Widget names are: spotify.song, spotify.prev, spotify.pause, spotify.next
 
 contributed by `yvesh <https://github.com/yvesh>`_ - many thanks!
+
+added controls by `LtPeriwinkle <https://github.com/LtPeriwinkle>`_ - many 
thanks!
 """
 
 import sys
@@ -26,62 +21,86 @@
 import core.widget
 import core.input
 import core.decorators
+import util.format
 
 
 class Module(core.module.Module):
     def __init__(self, config, theme):
-        super().__init__(config, theme, core.widget.Widget(self.spotify))
+        super().__init__(config, theme, [])
 
-        buttons = {
-            "LEFT_CLICK": core.input.LEFT_MOUSE,
-            "RIGHT_CLICK": core.input.RIGHT_MOUSE,
-            "MIDDLE_CLICK": core.input.MIDDLE_MOUSE,
-            "SCROLL_UP": core.input.WHEEL_UP,
-            "SCROLL_DOWN": core.input.WHEEL_DOWN,
-        }
+        self.__layout = self.parameter(
+            "layout",
+            
util.format.aslist("spotify.song,spotify.prev,spotify.pause,spotify.next"),
+        )
 
         self.__song = ""
+        self.__pause = ""
         self.__format = self.parameter("format", "{artist} - {title}")
-        prev_button = self.parameter("previous", "LEFT_CLICK")
-        next_button = self.parameter("next", "RIGHT_CLICK")
-        pause_button = self.parameter("pause", "MIDDLE_CLICK")
 
-        cmd = "dbus-send --session --type=method_call 
--dest=org.mpris.MediaPlayer2.spotify \
+        self.__cmd = "dbus-send --session --type=method_call 
--dest=org.mpris.MediaPlayer2.spotify \
                 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player."
-        core.input.register(self, button=buttons[prev_button], cmd=cmd + 
"Previous")
-        core.input.register(self, button=buttons[next_button], cmd=cmd + 
"Next")
-        core.input.register(self, button=buttons[pause_button], cmd=cmd + 
"PlayPause")
-
-    @core.decorators.scrollable
-    def spotify(self, widget):
-        return self.string_song
 
     def hidden(self):
         return self.string_song == ""
 
-    def update(self):
-        try:
-            bus = dbus.SessionBus()
-            spotify = bus.get_object(
-                "org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2"
-            )
-            spotify_iface = dbus.Interface(spotify, 
"org.freedesktop.DBus.Properties")
-            props = spotify_iface.Get("org.mpris.MediaPlayer2.Player", 
"Metadata")
-            playback_status = str(
-                spotify_iface.Get("org.mpris.MediaPlayer2.Player", 
"PlaybackStatus")
-            )
+    def __get_song(self):
+        bus = dbus.SessionBus()
+        spotify = bus.get_object(
+            "org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2"
+        )
+        spotify_iface = dbus.Interface(spotify, 
"org.freedesktop.DBus.Properties")
+        props = spotify_iface.Get("org.mpris.MediaPlayer2.Player", "Metadata")
+        playback_status = str(
+            spotify_iface.Get("org.mpris.MediaPlayer2.Player", 
"PlaybackStatus")
+        )
+        if playback_status == "Playing":
+            self.__pause = "\u258D\u258D"
+        else:
+            self.__pause = "\u25B6"
             self.__song = self.__format.format(
-                album=str(props.get("xesam:album")),
-                title=str(props.get("xesam:title")),
+            album=str(props.get("xesam:album")),
+            title=str(props.get("xesam:title")),
                 artist=",".join(props.get("xesam:artist")),
                 trackNumber=str(props.get("xesam:trackNumber")),
-                playbackStatus="\u25B6"
-                if playback_status == "Playing"
-                else "\u258D\u258D"
-                if playback_status == "Paused"
-                else "",
             )
 
+    def update(self):
+        try:
+            self.clear_widgets()
+            self.__get_song()
+            
+            widget_map = {}
+            for widget_name in self.__layout:
+                widget = self.add_widget(name=widget_name)
+                if widget_name == "spotify.prev":
+                    widget_map[widget] = {
+                        "button": core.input.LEFT_MOUSE,
+                        "cmd": self.__cmd + "Previous",
+                    }
+                    widget.full_text("\u258F\u25C0")
+                elif widget_name == "spotify.pause":
+                    widget_map[widget] = {
+                        "button": core.input.LEFT_MOUSE,
+                        "cmd": self.__cmd + "PlayPause",
+                    }
+                    widget.full_text(self.__pause)
+                elif widget_name == "spotify.next":
+                    widget_map[widget] = {
+                        "button": core.input.LEFT_MOUSE,
+                        "cmd": self.__cmd + "Next",
+                    }
+                    widget.full_text("\u25B6\u2595")
+                elif widget_name == "spotify.song":
+                    widget.full_text(self.__song)
+                else:
+                    raise KeyError(
+                        "The spotify module does not have a {widget_name!r} 
widget".format(
+                            widget_name=widget_name
+                        )
+                    )
+            for widget, callback_options in widget_map.items():
+                core.input.register(widget, **callback_options)
+
         except Exception:
             self.__song = ""
 
@@ -90,6 +109,3 @@
         if sys.version_info.major < 3:
             return unicode(self.__song)
         return str(self.__song)
-
-
-# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bumblebee-status-2.0.3/bumblebee_status/modules/core/ping.py 
new/bumblebee-status-2.0.4/bumblebee_status/modules/core/ping.py
--- old/bumblebee-status-2.0.3/bumblebee_status/modules/core/ping.py    
2020-06-24 07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/bumblebee_status/modules/core/ping.py    
2020-06-28 11:00:51.000000000 +0200
@@ -24,8 +24,6 @@
 import util.cli
 
 
-
-
 class Module(core.module.Module):
     @core.decorators.every(seconds=60)
     def __init__(self, config, theme):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bumblebee-status-2.0.3/bumblebee_status/modules/core/speedtest.py 
new/bumblebee-status-2.0.4/bumblebee_status/modules/core/speedtest.py
--- old/bumblebee-status-2.0.3/bumblebee_status/modules/core/speedtest.py       
1970-01-01 01:00:00.000000000 +0100
+++ new/bumblebee-status-2.0.4/bumblebee_status/modules/core/speedtest.py       
2020-06-28 11:00:51.000000000 +0200
@@ -0,0 +1,65 @@
+# pylint: disable=C0111,R0903
+
+"""Performs a speedtest - only updates when the "play" button is clicked
+
+Requires the following python module:
+    * speedtest-cli
+
+"""
+
+import sys
+
+import core.module
+import core.widget
+import core.input
+import core.event
+import core.decorators
+
+import speedtest
+
+
+class Module(core.module.Module):
+    @core.decorators.never
+    def __init__(self, config, theme):
+        super().__init__(config, theme, [])
+
+        self.background = True
+        self.__result = "<speedtest>"
+        self.__running = False
+
+        start = self.add_widget(name="start")
+        main = self.add_widget(name="main", full_text=self.result)
+
+        core.input.register(start, button=core.input.LEFT_MOUSE, 
cmd=self.update_event)
+
+    def result(self, _):
+        return self.__result
+
+    def update_event(self, _):
+        self.__running = True
+        self.update()
+
+    def update(self):
+        if not self.__running:
+            return
+        core.event.trigger("update", [self.id], redraw_only=True)
+        s = speedtest.Speedtest()
+        s.get_best_server()
+        s.download(threads=None)
+        s.upload(threads=None)
+
+        self.__result = "ping: {:.2f}ms down: {:.2f}Mbps up: 
{:.2f}Mbps".format(
+            s.results.ping,
+            s.results.download / 1024 / 1024,
+            s.results.upload / 1024 / 1024,
+        )
+        self.__running = False
+        core.event.trigger("update", [self.id], redraw_only=True)
+
+    def state(self, widget):
+        if widget.name == "start":
+            return "running" if self.__running else "not-running"
+        return None
+
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bumblebee-status-2.0.3/bumblebee_status/util/cli.py 
new/bumblebee-status-2.0.4/bumblebee_status/util/cli.py
--- old/bumblebee-status-2.0.3/bumblebee_status/util/cli.py     2020-06-24 
07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/bumblebee_status/util/cli.py     2020-06-28 
11:00:51.000000000 +0200
@@ -33,14 +33,19 @@
 
     if not env:
         env = os.environ.copy()
-    env["LC_ALL"] = "C"
+
+    myenv = env.copy()
+
+    myenv["LC_ALL"] = "C"
+    if "WAYLAND_SOCKET" in myenv:
+        del myenv["WAYLAND_SOCKET"]
 
     try:
         proc = subprocess.Popen(
             args,
             stdout=subprocess.PIPE,
             stderr=subprocess.STDOUT if include_stderr else subprocess.PIPE,
-            env=env,
+            env=myenv,
             shell=shell,
         )
     except FileNotFoundError as e:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bumblebee-status-2.0.3/bumblebee_status/util/format.py 
new/bumblebee-status-2.0.4/bumblebee_status/util/format.py
--- old/bumblebee-status-2.0.3/bumblebee_status/util/format.py  2020-06-24 
07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/bumblebee_status/util/format.py  2020-06-28 
11:00:51.000000000 +0200
@@ -68,7 +68,7 @@
     :return: temperature representation of the input value
     :rtype: string
     """
-    return "{}°{}".format(int(val), __UNITS.get(unit, __UNITS["default"]))
+    return "{}°{}".format(int(val), __UNITS.get(unit.lower(), 
__UNITS["default"]))
 
 
 def byte(val, fmt="{:.2f}"):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bumblebee-status-2.0.3/bumblebee_status/util/location.py 
new/bumblebee-status-2.0.4/bumblebee_status/util/location.py
--- old/bumblebee-status-2.0.3/bumblebee_status/util/location.py        
2020-06-24 07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/bumblebee_status/util/location.py        
2020-06-28 11:00:51.000000000 +0200
@@ -17,23 +17,23 @@
 __next = 0
 __sources = [
     {
-        "url": "http://free.ipwhois.io/json/";,
+        "url": "http://ipapi.co/json";,
         "mapping": {
             "latitude": "latitude",
             "longitude": "longitude",
-            "country": "country",
+            "country_name": "country",
             "ip": "public_ip",
         },
     },
     {
-        "url": "http://ipapi.co/json";,
+        "url": "http://free.ipwhois.io/json/";,
         "mapping": {
             "latitude": "latitude",
             "longitude": "longitude",
-            "country_name": "country",
+            "country": "country",
             "ip": "public_ip",
         },
-    },
+    }
 ]
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bumblebee-status-2.0.3/docs/modules.rst 
new/bumblebee-status-2.0.4/docs/modules.rst
--- old/bumblebee-status-2.0.3/docs/modules.rst 2020-06-24 07:47:31.000000000 
+0200
+++ new/bumblebee-status-2.0.4/docs/modules.rst 2020-06-28 11:00:51.000000000 
+0200
@@ -221,6 +221,14 @@
 
 .. image:: ../screenshots/spacer.png
 
+speedtest
+~~~~~~~~~
+
+Performs a speedtest - only updates when the "play" button is clicked
+
+Requires the following python module:
+    * speedtest-cli
+
 test
 ~~~~
 
@@ -396,6 +404,8 @@
 
 Parameters:
     * brightness.step: The amount of increase/decrease on scroll in % 
(defaults to 2)
+    * brightness.device_path: The device path (defaults to 
/sys/class/backlight/intel_backlight), can contain wildcards (in this case, the 
first matching path will be used); This is only used when brightness.use_acpi 
is set to true
+    * brightness.use_acpi: If set to true, read brightness directly from the 
sys ACPI interface, using the device specified in brightness.device_path 
(defaults to false)
 
 contributed by `TheEdgeOfRage <https://github.com/TheEdgeOfRage>`_ - many 
thanks!
 
@@ -1123,24 +1133,21 @@
 spotify
 ~~~~~~~
 
-Displays the current song being played
+Displays the current song being played and allows pausing, skipping ahead, and 
skipping back.
 
 Requires the following library:
     * python-dbus
 
 Parameters:
     * spotify.format:   Format string (defaults to '{artist} - {title}')
-      Available values are: {album}, {title}, {artist}, {trackNumber}, 
{playbackStatus}
-    * spotify.previous: Change binding for previous song (default is left 
click)
-    * spotify.next:     Change binding for next song (default is right click)
-    * spotify.pause:    Change binding for toggling pause (default is middle 
click)
-
-    Available options for spotify.previous, spotify.next and spotify.pause are:
-        LEFT_CLICK, RIGHT_CLICK, MIDDLE_CLICK, SCROLL_UP, SCROLL_DOWN
-
+      Available values are: {album}, {title}, {artist}, {trackNumber}
+    * spotify.layout:   Comma-separated list to change order of widgets 
(defaults to song, previous, pause, next)
+      Widget names are: spotify.song, spotify.prev, spotify.pause, spotify.next
 
 contributed by `yvesh <https://github.com/yvesh>`_ - many thanks!
 
+added controls by `LtPeriwinkle <https://github.com/LtPeriwinkle>`_ - many 
thanks!
+
 .. image:: ../screenshots/spotify.png
 
 stock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bumblebee-status-2.0.3/tests/util/test_format.py 
new/bumblebee-status-2.0.4/tests/util/test_format.py
--- old/bumblebee-status-2.0.3/tests/util/test_format.py        2020-06-24 
07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/tests/util/test_format.py        2020-06-28 
11:00:51.000000000 +0200
@@ -110,4 +110,7 @@
     assert astemperature(-100, "kelvin") == "-100°K"
 
 
+def test_temperature_case():
+    assert astemperature(100, "ImPeRiAl") == "100°F"
+
 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bumblebee-status-2.0.3/tests/util/test_location.py 
new/bumblebee-status-2.0.4/tests/util/test_location.py
--- old/bumblebee-status-2.0.3/tests/util/test_location.py      2020-06-24 
07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/tests/util/test_location.py      2020-06-28 
11:00:51.000000000 +0200
@@ -11,7 +11,7 @@
 
 
 @pytest.fixture
-def primaryLocation():
+def secondaryLocation():
     return {
         "country": "Middle Earth",
         "longitude": "10.0",
@@ -21,7 +21,7 @@
 
 
 @pytest.fixture
-def secondaryLocation():
+def primaryLocation():
     return {
         "country_name": "Rivia",
         "longitude": "-10.0",
@@ -33,7 +33,7 @@
 def test_primary_provider(urllib_req, primaryLocation):
     urllib_req.urlopen.return_value.read.return_value = 
json.dumps(primaryLocation)
 
-    assert util.location.country() == primaryLocation["country"]
+    assert util.location.country() == primaryLocation["country_name"]
     assert util.location.coordinates() == (
         primaryLocation["latitude"],
         primaryLocation["longitude"],
@@ -46,7 +46,7 @@
     urlopen.read.return_value = json.dumps(secondaryLocation)
     urllib_req.urlopen.side_effect = [RuntimeError(), urlopen]
 
-    assert util.location.country() == secondaryLocation["country_name"]
+    assert util.location.country() == secondaryLocation["country"]
     assert util.location.coordinates() == (
         secondaryLocation["latitude"],
         secondaryLocation["longitude"],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bumblebee-status-2.0.3/themes/icons/ascii.json 
new/bumblebee-status-2.0.4/themes/icons/ascii.json
--- old/bumblebee-status-2.0.3/themes/icons/ascii.json  2020-06-24 
07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/themes/icons/ascii.json  2020-06-28 
11:00:51.000000000 +0200
@@ -362,5 +362,9 @@
   },
   "arandr": {
       "prefix": " displays "
+  },
+  "speedtest": {
+    "running": { "prefix": [".", "..", "...", ".."] },
+       "not-running": { "prefix": "[start]" }
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bumblebee-status-2.0.3/themes/icons/awesome-fonts.json 
new/bumblebee-status-2.0.4/themes/icons/awesome-fonts.json
--- old/bumblebee-status-2.0.3/themes/icons/awesome-fonts.json  2020-06-24 
07:47:31.000000000 +0200
+++ new/bumblebee-status-2.0.4/themes/icons/awesome-fonts.json  2020-06-28 
11:00:51.000000000 +0200
@@ -281,5 +281,9 @@
   },
   "arandr": {
     "prefix": ""
+  },
+  "speedtest": {
+    "running": { "prefix": ["\uf251", "\uf252", "\uf253"] },
+       "not-running": { "prefix": "\uf144" }
   }
 }


Reply via email to