Commit graph

237 commits

Author SHA1 Message Date
Thaynã Moretti
0c8d682d62 Add unit tests 2020-08-30 12:49:33 -03:00
Thaynã Moretti
820598b1b8 Fix memory module tests 2020-08-30 12:11:48 -03:00
Thaynã Moretti
945838dc74 Create memory module tests 2020-08-30 11:15:23 -03:00
Thaynã Moretti
22ddcf42bd Improve tests 2020-08-29 21:49:41 -03:00
Thaynã Moretti
2c8dafec70 Add Network Traffic module tests 2020-08-29 20:17:39 -03:00
Naya Verdier
13a851a636
[xrandr-tests] Test disconnecting excluded active display 2020-07-26 15:52:47 -07:00
Naya Verdier
06afb03807
[xrandr] add tests for dis/connecting without autotoggle 2020-07-26 13:29:14 -07:00
Naya Verdier
06d6739da4
[xrandr] Add autotoggle behavior to xrandr
Also makes i3 subscription events and widget click live-update
2020-07-26 13:21:49 -07:00
Naya Verdier
d05ff39f02
[xrandr] Add unit tests 2020-07-25 10:53:44 -07:00
tobi-wan-kenobi
550b594c86 [tests] fix some test prerequisites 2020-07-21 08:20:55 +02:00
tobi-wan-kenobi
548ccc5e94 [tests] add somewhat experimental import-time tests
add auto-generated tests that check that a given module can be imported,
if all prerequisites are followed.

see #641
2020-07-20 13:58:24 +02:00
tobi-wan-kenobi
9be1331e1b [tests] add placeholder for core tests 2020-07-20 13:17:35 +02:00
tobi-wan-kenobi
9136ebd321 [core/input] clear previous input registrations
make sure that for a given event (widget/object/module, whatever), only
a *single* input event per button can be registered at one time.

the problem otherwise is with modules that re-register their widgets
with the same IDs (cmus, spotify, etc.): Each time the widget is
re-created (each intervall, typically), it re-registers an input event,
creating an always longer list of callbacks being executed when the
button is clicked (not speaking of the memory leak this introduces).

fixes #668
2020-06-29 07:44:22 +02:00
tobi-wan-kenobi
81c5e75624 [tests] fix location tests
a previous commit that switched the primary and secondary location
provider broke the unit tests - fix that.
2020-06-28 10:45:22 +02:00
tobi-wan-kenobi
954d7545e3 [util/format] make temperature metric case insensitive
see #664
2020-06-27 15:02:55 +02:00
Tobias Witek
441e7d5041 [core] fix minimize for all modules (nic, traffic, etc.)
make it possible to toggle the display state of a widget between
"displayed" and "minimized" also for modules that re-create their
widgets during each iteration.

see #661
2020-06-23 20:03:17 +02:00
Tobias Witek
34dadadf90 [core] re-enable minimize of widgets
by default, allow toggling the minimized state of a widget via the
middle mouse and draw a single unicode char instead of the actual
widget, maintaining all states.

fixes #661
2020-06-23 15:51:14 +02:00
Tobias Witek
79fb28512f [tests] black -t py34 2020-06-20 15:11:53 +02:00
Tobias Witek
e9e67ae375 [tests/mpd] fix python3.5 for real now, hopefully 2020-06-20 15:07:16 +02:00
Tobias Witek
b22747818b [tests] fix tests for python3.5 2020-06-20 15:04:10 +02:00
Tobias Witek
a56b3db813 [tests] fix store tests 2020-06-20 14:58:49 +02:00
Tobias Witek
39fa7788b4 [tests] switch to pytest 2020-06-20 14:53:44 +02:00
Tobias Witek
b2e92d816d [tests] add pytest for core.output
see #642
2020-06-20 14:51:49 +02:00
tobi-wan-kenobi
16269ff01e [core/input] add variables to custom cli calls
when specifying event bindings via CLI (e.g. disk.left-click=thunar),
allow for variables ({instance} and {name}, in particular).

fixes #650
2020-06-09 20:29:51 +02:00
tobi-wan-kenobi
cb9a60668a [core/theme] Fix detection of "best matching theme"
Previous code accepted the "first" hit in a theme - particularly, if a
module is called "A" and a *different* module "B" uses "A" as state, a
widget of module B with state A would be themed as *module* A, wrongly.

Essentially, made sure that the last (most specific) themeing "wins".

fixes #647
2020-06-04 20:56:31 +02:00
tobi-wan-kenobi
02a80840a1 [core] more black'ing 2020-05-16 12:00:55 +02:00
tobi-wan-kenobi
7584366adc [tests] add more tests 2020-05-16 11:57:27 +02:00
tobi-wan-kenobi
eea3c758de [core/input] Invoke commands in a subshell
add shell capability to util.cli and make sure that the input module
uses that to reliably spawn whatever command the user wants to run.

see #628
2020-05-16 11:43:43 +02:00
Pavle Portic
a8df4a5f9d
Handle n+1 characters in the scrolling decorator 2020-05-15 20:31:37 +02:00
tobi-wan-kenobi
526560ea54 [core/decorators] use difflib to make scrolling reset detection fuzzy
when scrolling text that is subject to *slight* changes (e.g. a song
that contains the current position within the song), allow for slight
variations in the displayed text.

fixes #629
2020-05-14 20:35:09 +02:00
tobi-wan-kenobi
92577e7d26 [all] black code :) 2020-05-09 21:24:28 +02:00
tobi-wan-kenobi
320827d577 [core] restructure to allow PIP packaging
OK - so I have to admit I *hate* the fact that PIP seems to require a
subdirectory named like the library.

But since the PIP package is something really nifty to have (thanks to
@tony again!!!), I updated the codebase to hopefully conform with what
PIP expects. Testruns so far look promising...
2020-05-09 21:22:00 +02:00
tobi-wan-kenobi
1d25be2059 [doc] update module documentation 2020-05-09 15:31:25 +02:00
tobi-wan-kenobi
9ef826b5fd [core] fix tests 2020-05-08 21:01:45 +02:00
tobi-wan-kenobi
98dd8ca5f7 [core/decorators] reset scrolling if content changes
see #622
2020-05-04 20:11:10 +02:00
tobi-wan-kenobi
30c1f712a6 [formatting] reformat using "black -t py34"
getting rid of thinking about consistent formatting...
2020-05-03 11:15:52 +02:00
tobi-wan-kenobi
4bd23950c6 [tests] add core/widget tests 2020-05-02 14:14:12 +02:00
tobi-wan-kenobi
5ee97dbb09 [tests] add more core/config tests 2020-05-02 14:09:30 +02:00
tobi-wan-kenobi
2ab575d190 [core] do not scroll errors
to make errors easier to diagnose, do not scroll them, but instead fully
show them.

also, re-introduce the supplementary fields for the dwm bridge, kudos to
@somospocos
2020-05-01 15:34:29 +02:00
tobi-wan-kenobi
1e4955d4b8 [core/module] Make name and module_name attributes 2020-04-30 12:50:24 +02:00
tobi-wan-kenobi
9cd9ff626d [core] make widget name an attribute
first, this fixes #607

also, i think it slightly simplifies code to make "simple" stuff like
names, etc. attributes instead of methods all the time.

so, expect this to be extended to other components, as well.
2020-04-30 12:42:34 +02:00
tobi-wan-kenobi
1f94eab927 [core] Add themes to module constructor 2020-04-26 16:39:13 +02:00
tobi-wan-kenobi
fae06da446 [modules/battery] Rewrite for bigger reuse 2020-04-19 14:07:15 +02:00
tobi-wan-kenobi
74c25ba2ee [util] Add central geolocation info library 2020-04-15 13:25:51 +02:00
tobi-wan-kenobi
580bb20a9f [tests/theme] Fix WAL mocked tests
Until now, the WAL tests depended on the pyWAL cache file being actually
present on the system.
2020-04-13 13:47:50 +02:00
tobi-wan-kenobi
dc5bfd1fc6 [tests/output] Improve pango tests 2020-04-13 13:43:07 +02:00
tobi-wan-kenobi
9e32cdef5d [core] Rename events for more clarity 2020-04-12 20:11:02 +02:00
tobi-wan-kenobi
4cd6444bbf [core/theme] Improve items that are lists
Until now, using a list as prefix/suffix didn't work as expected,
because the corresponding method for retrieving the value was called
multiple times, and each time, the next icon would be retrieved.

Changed the logic inside the theme to only update the indices every time
that an actual update was happening.
2020-04-12 14:01:51 +02:00
tobi-wan-kenobi
32e5d633f4 [core/output] Add tests for pango formatting 2020-04-07 20:59:26 +02:00
tobi-wan-kenobi
c0cc1ccd75 [core] Remove "intelligent" theme accessors
To simplify code, remove the auto-generated theme accessors for
attributes, and instead use a generic "get" method.
2020-04-07 20:44:01 +02:00