blob: fce04394ec6dba342f57777ff8f3250e9b440785 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
"""Tests for the audiobook converter orchestration helpers."""
import unittest
from converter.converter import AudiobookConverter
class SanitizeFilenameTests(unittest.TestCase):
def test_removes_invalid_characters(self):
self.assertEqual(AudiobookConverter._sanitize_filename('A "bad" name: here'),
"A bad name here")
def test_collapses_whitespace(self):
self.assertEqual(AudiobookConverter._sanitize_filename(" spaced\tout "), "spaced out")
def test_empty_falls_back(self):
self.assertEqual(AudiobookConverter._sanitize_filename("///"), "chapter")
class ConfigurationValidationTests(unittest.TestCase):
def test_invalid_voice_mode_rejected(self):
with self.assertRaises(ValueError):
AudiobookConverter(voice_mode="custon_voice")
def test_nonpositive_speed_rejected(self):
with self.assertRaises(ValueError):
AudiobookConverter(speed=0)
def test_unknown_format_rejected(self):
with self.assertRaises(ValueError):
AudiobookConverter(output_format="wma")
if __name__ == "__main__":
unittest.main()
|