feat: add system sound alert module

Made-with: Cursor
This commit is contained in:
cottongin
2026-03-10 02:44:45 -04:00
parent c1d10efe7b
commit 3cbe529b7a
2 changed files with 37 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
"""System sound playback."""
from Cocoa import NSSound
from cursor_flasher.config import Config
def play_alert(config: Config) -> None:
"""Play the configured alert sound if enabled."""
if not config.sound_enabled:
return
sound = NSSound.soundNamed_(config.sound_name)
if sound is None:
return
sound.setVolume_(config.sound_volume)
sound.play()

20
tests/test_sound.py Normal file
View File

@@ -0,0 +1,20 @@
import pytest
from unittest.mock import patch, MagicMock
from cursor_flasher.sound import play_alert
from cursor_flasher.config import Config
class TestPlayAlert:
def test_does_nothing_when_disabled(self):
config = Config(sound_enabled=False)
play_alert(config)
@patch("cursor_flasher.sound.NSSound")
def test_plays_named_sound(self, mock_nssound):
mock_sound_obj = MagicMock()
mock_nssound.soundNamed_.return_value = mock_sound_obj
config = Config(sound_enabled=True, sound_name="Glass", sound_volume=0.7)
play_alert(config)
mock_nssound.soundNamed_.assert_called_once_with("Glass")
mock_sound_obj.setVolume_.assert_called_once_with(0.7)
mock_sound_obj.play.assert_called_once()