summaryrefslogtreecommitdiff
path: root/tests/test_persistence.py
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2026-07-24 14:15:05 +0200
committerYuval Adam <_@yuv.al>2026-07-24 14:15:05 +0200
commit8007c77e415130d9aab431e6b7199286bd3b7caf (patch)
tree5d6bda05738673518616e1af99c90c6ce4d612db /tests/test_persistence.py
parent31fa21fdd1c6bccec73ccabdb49316c9813b0a9b (diff)
Preserve recordings with dated transcripts
Diffstat (limited to 'tests/test_persistence.py')
-rw-r--r--tests/test_persistence.py42
1 files changed, 27 insertions, 15 deletions
diff --git a/tests/test_persistence.py b/tests/test_persistence.py
index d8ae257..5e86aa3 100644
--- a/tests/test_persistence.py
+++ b/tests/test_persistence.py
@@ -9,30 +9,42 @@ from parley.persistence import save_transcript
class PersistenceTests(unittest.TestCase):
def setUp(self) -> None:
self.temporary = tempfile.TemporaryDirectory()
- self.directory = Path(self.temporary.name) / "transcripts"
+ root = Path(self.temporary.name)
+ self.directory = root / "transcripts"
+ self.recording = root / "recording.wav"
+ self.recording.write_bytes(b"RIFF audio")
self.now = datetime(2026, 7, 24, 12, 34, 56, 123456, timezone.utc)
def tearDown(self) -> None:
self.temporary.cleanup()
- def test_writes_utf8_with_one_final_newline(self) -> None:
- path = save_transcript("héllo\n\n", self.directory, clock=lambda: self.now)
+ def save(self, text: str = "text") -> Path:
+ return save_transcript(
+ text,
+ self.recording,
+ self.directory,
+ clock=lambda: self.now,
+ )
+
+ def test_saves_text_and_audio_under_date_and_time(self) -> None:
+ path = self.save("héllo\n\n")
+
+ self.assertEqual(path, self.directory / "2026-07-24" / "12-34-56.txt")
self.assertEqual(path.read_text(encoding="utf-8"), "héllo\n")
- self.assertEqual(path.name, "transcript_2026-07-24_12-34-56_123456+0000.txt")
+ self.assertEqual(path.with_suffix(".wav").read_bytes(), b"RIFF audio")
+
+ def test_refuses_to_replace_an_existing_pair(self) -> None:
+ first = self.save("one")
+
+ with self.assertRaises(FileExistsError):
+ self.save("two")
- def test_uses_counter_on_collision(self) -> None:
- first = save_transcript("one", self.directory, clock=lambda: self.now)
- second = save_transcript("two", self.directory, clock=lambda: self.now)
- self.assertNotEqual(first, second)
- self.assertEqual(second.stem[-2:], "_1")
self.assertEqual(first.read_text(), "one\n")
- self.assertEqual(second.read_text(), "two\n")
+ self.assertEqual(first.with_suffix(".wav").read_bytes(), b"RIFF audio")
- def test_leaves_no_temporary_file(self) -> None:
- save_transcript("text", self.directory, clock=lambda: self.now)
- self.assertFalse(
- any(path.suffix == ".tmp" for path in self.directory.iterdir())
- )
+ def test_leaves_no_temporary_files(self) -> None:
+ path = self.save()
+ self.assertFalse(any(item.suffix == ".tmp" for item in path.parent.iterdir()))
if __name__ == "__main__":