34 lines
1 KiB
Python
34 lines
1 KiB
Python
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
"""Desktop notification helper: notify-send when available, else no-op."""
|
|
import subprocess
|
|
import unittest
|
|
|
|
from enodia_sentinel.tray import notify
|
|
|
|
|
|
class TestNotify(unittest.TestCase):
|
|
def test_no_notify_send_is_noop(self):
|
|
calls = []
|
|
|
|
def runner(cmd):
|
|
calls.append(cmd)
|
|
return subprocess.CompletedProcess(cmd, 0)
|
|
|
|
used = notify.notify("t", "b", runner=runner, which=lambda _n: None)
|
|
self.assertFalse(used)
|
|
self.assertEqual(calls, [])
|
|
|
|
def test_uses_notify_send_with_app_name(self):
|
|
calls = []
|
|
|
|
def runner(cmd):
|
|
calls.append(cmd)
|
|
return subprocess.CompletedProcess(cmd, 0)
|
|
|
|
used = notify.notify("Title", "Body", runner=runner,
|
|
which=lambda _n: "/usr/bin/notify-send")
|
|
self.assertTrue(used)
|
|
self.assertEqual(len(calls), 1)
|
|
self.assertIn("notify-send", calls[0][0])
|
|
self.assertIn("Title", calls[0])
|
|
self.assertIn("Body", calls[0])
|