PodXplainClone / test_processing.py
Bilal140202
Upgrade podcast generator UX and export reliability
4193bcd
import unittest
from speaker_detection import detect_speakers
from text_processing import chunk_text, normalize_text
class TextProcessingTests(unittest.TestCase):
def test_normalize_text_preserves_paragraphs(self):
self.assertEqual(normalize_text("One two\n\n\nThree"), "One two\n\nThree")
def test_chunk_text_limits_size(self):
text = " ".join(["word"] * 220)
chunks = chunk_text(text, max_chars=80)
self.assertGreater(len(chunks), 1)
self.assertTrue(all(len(chunk) <= 80 for chunk in chunks))
class SpeakerDetectionTests(unittest.TestCase):
def test_dialogue_labels_create_distinct_speakers(self):
segments = detect_speakers("Alex: Hello.\nSarah: Hi there.", "dialogue")
self.assertEqual([speaker for speaker, _text in segments], [0, 1])
def test_paragraph_mode_alternates(self):
segments = detect_speakers("First paragraph.\n\nSecond paragraph.\n\nThird paragraph.", "paragraph")
self.assertEqual([speaker for speaker, _text in segments], [0, 1, 0])
if __name__ == "__main__":
unittest.main()