Can you paste as an issue on github and paste the full test log too. I wrote both of those tests that seem to be failing so I'll take a look. I don't run Opensuse but I'll take a look.
Probably worth looking at https://github.com/qtile/qtile/pull/2653 too. On Tuesday, 10 August 2021 at 07:14:06 UTC+1 [email protected] wrote: > Failed test log added as a gist: > https://gist.github.com/Nyslay/9ee08a02c6bd3a1c7f7d9216007b38fe > poniedziaĆek, 9 sierpnia 2021 o 23:28:48 UTC+2 Dawid Respondek napisaĆ(a): > >> Hi, I'm trying to create .rpm package for openSUSE distro using openSUSE >> Build Service, but my package fail to pass pytest. >> Most of issue I already fixed, but for this one I cant find solution. >> OBS build: Show home:nyslay:branches:X11:windowmanagers / qtile - >> openSUSE Build Service >> <https://build.opensuse.org/package/show/home:nyslay:branches:X11:windowmanagers/qtile> >> Test logs below: >> >> =================================== FAILURES >> =================================== [ 284s] ______________________ >> test_update_available_with_execute ______________________ [ 284s] [ 284s] >> manager_nospawn = <test.conftest.TestManager object at 0x7fb82e05bc40> [ >> 284s] minimal_conf_noscreen = <class >> 'test.widgets.conftest.minimal_conf_noscreen.<locals>.MinimalConf'> [ 284s] >> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fb82e05b0d0> [ >> 284s] [ 284s] def test_update_available_with_execute(manager_nospawn, >> minimal_conf_noscreen, monkeypatch): [ 284s] """ test polling after >> executing command """ [ 284s] [ 284s] # Use monkeypatching to patch both >> Popen (for execute command) and call_process [ 284s] [ 284s] # This class >> returns None when first polled (to simulate that the task is still running) >> [ 284s] # and then 0 on the second call. [ 284s] class MockPopen: [ 284s] >> def __init__(self, *args, **kwargs): [ 284s] self.call_count = 0 [ 284s] [ >> 284s] def poll(self): [ 284s] if self.call_count == 0: [ 284s] >> self.call_count += 1 [ 284s] return None [ 284s] return 0 [ 284s] [ 284s] # >> Bit of an ugly hack to replicate the above functionality but for a method. >> [ 284s] class MockSpawn: [ 284s] call_count = 0 [ 284s] [ 284s] >> @classmethod [ 284s] def call_process(cls, *args, **kwargs): [ 284s] if >> cls.call_count == 0: [ 284s] cls.call_count += 1 [ 284s] return "Updates" [ >> 284s] return "" [ 284s] [ 284s] cu6 = CheckUpdates(distro=good_distro, [ >> 284s] custom_command="dummy", [ 284s] execute="dummy", [ 284s] >> no_update_string=nus, [ 284s] ) [ 284s] [ 284s] # Patch the necessary >> object [ 284s] monkeypatch.setattr(cu6, "call_process", >> MockSpawn.call_process) [ 284s] >> monkeypatch.setattr("libqtile.widget.check_updates.Popen", MockPopen) [ >> 284s] [ 284s] config = minimal_conf_noscreen [ 284s] config.screens = [ [ >> 284s] libqtile.config.Screen( [ 284s] top=libqtile.bar.Bar([cu6], 10) [ >> 284s] ) [ 284s] ] [ 284s] [ 284s] > manager_nospawn.start(config) [ 284s] [ >> 284s] test/widgets/test_check_updates.py:137: [ 284s] _ _ _ _ _ _ _ _ _ _ _ >> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 284s] [ 284s] >> self = <test.conftest.TestManager object at 0x7fb82e05bc40> [ 284s] >> config_class = <class >> 'test.widgets.conftest.minimal_conf_noscreen.<locals>.MinimalConf'> [ 284s] >> no_spawn = False [ 284s] [ 284s] def start(self, config_class, >> no_spawn=False): [ 284s] rpipe, wpipe = multiprocessing.Pipe() [ 284s] [ >> 284s] def run_qtile(): [ 284s] try: [ 284s] kore = >> Core(display_name=self.display) [ 284s] init_log(self.log_level, >> log_path=None, log_color=False) [ 284s] Qtile( [ 284s] kore, [ 284s] >> config_class(), [ 284s] socket_path=self.sockfile, [ 284s] >> no_spawn=no_spawn, [ 284s] ).loop() [ 284s] except Exception: [ 284s] >> wpipe.send(traceback.format_exc()) [ 284s] [ 284s] self.proc = >> multiprocessing.Process(target=run_qtile) [ 284s] self.proc.start() [ 284s] >> [ 284s] # First, wait for socket to appear [ 284s] if >> can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): [ 284s] >> ipc_client = ipc.Client(self.sockfile) [ 284s] ipc_command = >> command.interface.IPCCommandInterface(ipc_client) [ 284s] self.c = >> command.client.InteractiveCommandClient(ipc_command) [ 284s] return [ 284s] >> if rpipe.poll(sleep_time): [ 284s] error = rpipe.recv() [ 284s] raise >> AssertionError("Error launching qtile, traceback:\n%s" % error) [ 284s] > >> raise AssertionError("Error launching qtile") [ 284s] E AssertionError: >> Error launching qtile [ 284s] [ 284s] test/conftest.py:301: AssertionError >> [ 284s] --------------------------- Captured stderr teardown >> --------------------------- [ 284s] Killing qtile forcefully [ 284s] qtile >> exited with exitcode: -9 [ 284s] ______________________________ >> test_notifications ______________________________ [ 284s] [ 284s] >> manager_nospawn = <test.conftest.TestManager object at 0x7fb82f4d0220> [ >> 284s] minimal_conf_noscreen = <class >> 'test.widgets.conftest.minimal_conf_noscreen.<locals>.MinimalConf'> [ 284s] >> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fb82f474f70> [ >> 284s] [ 284s] @pytest.mark.skipif( [ 284s] shutil.which("notify-send") is >> None, [ 284s] reason="notify-send not installed." [ 284s] ) [ 284s] >> @pytest.mark.usefixtures("dbus") [ 284s] def >> test_notifications(manager_nospawn, minimal_conf_noscreen, monkeypatch): [ >> 284s] notify.Notify.timeout_add = log_timeout [ 284s] widget = >> notify.Notify(foreground_urgent=URGENT, [ 284s] foreground_low=LOW, [ 284s] >> default_timeout=DEFAULT_TIMEOUT) [ 284s] config = minimal_conf_noscreen [ >> 284s] config.screens = [ [ 284s] libqtile.config.Screen( [ 284s] >> top=Bar([widget], 10) [ 284s] ) [ 284s] ] [ 284s] [ 284s] >> manager_nospawn.start(config) [ 284s] obj = >> manager_nospawn.c.widget["notify"] [ 284s] [ 284s] # Send first >> notification and check time and display time [ 284s] notif_1 = [NS] [ 284s] >> notif_1.extend(NOTIFICATION_1) [ 284s] subprocess.run(notif_1) [ 284s] > >> assert obj.info()["text"] == MESSAGE_1 [ 284s] E assert '' == '<span >> weight="bold">Message 1</span> - Test Message 1' [ 284s] E - <span >> weight="bold">Message 1</span> - Test Message 1 [ 284s] [ 284s] >> test/widgets/test_notify.py:112: AssertionError [ 284s] >> ----------------------------- Captured stdout call >> ----------------------------- [ 284s] 2021-08-09 21:23:57,866 INFO libqtile >> core.py:_get_target_chain():L373 Unhandled event: ConfigureNotify [ 284s] >> =============================== warnings summary >> =============================== [ 284s] >> ../../../../../usr/lib/python3.8/site-packages/mpd/base.py:20 [ 284s] >> /usr/lib/python3.8/site-packages/mpd/base.py:20: DeprecationWarning: Using >> or importing the ABCs from 'collections' instead of from 'collections.abc' >> is deprecated since Python 3.3, and in 3.10 it will stop working [ 284s] >> from collections import Callable [ 284s] [ 284s] -- Docs: >> https://docs.pytest.org/en/stable/warnings.html [ 284s] >> =========================== short test summary info >> ============================ [ 284s] FAILED >> test/widgets/test_check_updates.py::test_update_available_with_execute [ >> 284s] FAILED test/widgets/test_notify.py::test_notifications - assert '' == >> '<span ... [ 284s] ======= 2 failed, 611 passed, 7 skipped, 1 warning in >> 241.96s (0:04:01) ======== [ 284s] error: Bad exit status from >> /var/tmp/rpm-tmp.nCxq1T (%check) >> > -- You received this message because you are subscribed to the Google Groups "qtile-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/qtile-dev/ec017ac2-ab89-44f9-a659-a19a7464dcf9n%40googlegroups.com.
