Add clipboard cleanup option for clipboard backend

This commit is contained in:
Thales Maciel 2026-02-25 10:56:32 -03:00
parent 1423e44008
commit ccf968a410
9 changed files with 114 additions and 11 deletions

View file

@ -25,6 +25,7 @@ class ConfigTests(unittest.TestCase):
self.assertEqual(cfg.stt.model, "base")
self.assertEqual(cfg.stt.device, "cpu")
self.assertEqual(cfg.injection.backend, "clipboard")
self.assertFalse(cfg.injection.remove_transcription_from_clipboard)
self.assertTrue(cfg.ai.enabled)
self.assertEqual(cfg.vocabulary.replacements, [])
self.assertEqual(cfg.vocabulary.terms, [])
@ -38,7 +39,10 @@ class ConfigTests(unittest.TestCase):
"daemon": {"hotkey": "Ctrl+space"},
"recording": {"input": 3},
"stt": {"model": "small", "device": "cuda"},
"injection": {"backend": "injection"},
"injection": {
"backend": "injection",
"remove_transcription_from_clipboard": True,
},
"ai": {"enabled": False},
"vocabulary": {
"replacements": [
@ -62,6 +66,7 @@ class ConfigTests(unittest.TestCase):
self.assertEqual(cfg.stt.model, "small")
self.assertEqual(cfg.stt.device, "cuda")
self.assertEqual(cfg.injection.backend, "injection")
self.assertTrue(cfg.injection.remove_transcription_from_clipboard)
self.assertFalse(cfg.ai.enabled)
self.assertEqual(cfg.vocabulary.max_rules, 100)
self.assertEqual(cfg.vocabulary.max_terms, 200)
@ -92,6 +97,7 @@ class ConfigTests(unittest.TestCase):
self.assertEqual(cfg.stt.model, "tiny")
self.assertEqual(cfg.stt.device, "cpu")
self.assertEqual(cfg.injection.backend, "clipboard")
self.assertFalse(cfg.injection.remove_transcription_from_clipboard)
self.assertFalse(cfg.ai.enabled)
self.assertEqual(cfg.vocabulary.replacements, [])
@ -104,6 +110,15 @@ class ConfigTests(unittest.TestCase):
with self.assertRaisesRegex(ValueError, "injection.backend"):
load(str(path))
def test_invalid_clipboard_remove_option_raises(self):
payload = {"injection": {"remove_transcription_from_clipboard": "yes"}}
with tempfile.TemporaryDirectory() as td:
path = Path(td) / "config.json"
path.write_text(json.dumps(payload), encoding="utf-8")
with self.assertRaisesRegex(ValueError, "injection.remove_transcription_from_clipboard"):
load(str(path))
def test_removed_logging_section_raises(self):
payload = {"logging": {"log_transcript": True}}
with tempfile.TemporaryDirectory() as td: