From 2fe41fbfb04502ea0cede0c5ade2ace83dda394e Mon Sep 17 00:00:00 2001 From: tligui_y Date: Sun, 17 Aug 2025 14:10:05 +0200 Subject: [PATCH] Update tests/test_utils_dbusnotify.py --- tests/test_utils_dbusnotify.py | 36 +++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/tests/test_utils_dbusnotify.py b/tests/test_utils_dbusnotify.py index 2ee3d13ee..c033f9756 100644 --- a/tests/test_utils_dbusnotify.py +++ b/tests/test_utils_dbusnotify.py @@ -3,7 +3,6 @@ import time import subprocess import pytest import dbusmock -from dbusmock import DBusTestCase from slic.utils.dbusnotify import convert_dbus_strings os.environ['DISPLAY'] = ':0' @@ -22,11 +21,11 @@ class _DBusEnv(DBusTestCase): @pytest.fixture(scope="session", autouse=True) def _dbus_session_notifications(): - # 1) lancer un bus de session + # 1) Bus de session pour tous les tests _DBusEnv.start_session_bus() - # 2) démarrer le service Notifications (ARGUMENTS POSITIONNELS) - p_mock = _DBusEnv.spawn_server( + # 2) Démarrer le service Notifications (arguments positionnels) + p_notify = _DBusEnv.spawn_server( 'org.freedesktop.Notifications', '/org/freedesktop/Notifications', 'org.freedesktop.Notifications', @@ -34,24 +33,29 @@ def _dbus_session_notifications(): None # stdout ) - # 3) récupérer l'objet via le bus - bus = _DBusEnv.get_dbus(False) # False => session bus + # 3) Récupérer l'objet mock et ajouter les méthodes (code string !) + bus = _DBusEnv.get_dbus(False) # session bus obj = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications') mock = dbus.Interface(obj, MOCK_IFACE) - # 4) définir les méthodes minimales + # out='ssss' -> tuple de 4 strings mock.AddMethod('org.freedesktop.Notifications', 'GetServerInformation', - '', 'ssss', ['pytest-notify', 'pytest-vendor', '1.0', '1.2']) - mock.AddMethod('org.freedesktop.Notifications', 'GetCapabilities', - '', 'as', [['actions', 'body', 'icon', 'sound']]) - mock.AddMethod('org.freedesktop.Notifications', 'Notify', - 'susssasa{sv}i', 'u', [1]) - mock.AddMethod('org.freedesktop.Notifications', 'CloseNotification', - 'u', '', []) + '', 'ssss', 'ret = ("pytest-notify","pytest-vendor","1.0","1.2")') - yield - # Pas de teardown nécessaire ici + # out='as' -> liste de strings + mock.AddMethod('org.freedesktop.Notifications', 'GetCapabilities', + '', 'as', 'ret = ["actions","body","icon","sound"]') + + # in='susssasa{sv}i', out='u' -> entier + mock.AddMethod('org.freedesktop.Notifications', 'Notify', + 'susssasa{sv}i', 'u', 'ret = 1') + + # in='u', out='' -> rien + mock.AddMethod('org.freedesktop.Notifications', 'CloseNotification', + 'u', '', '') + + yield # teardown géré par python-dbusmock @pytest.fixture