"""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="ogg") if __name__ == "__main__": unittest.main()