audiobook_gen / tests /test_output.py
Matthew Kutarna
Streamlit app development (#5)
cbbc229
import pytest
from src import output, config
import test_config
def test_write_audio():
"""
Tests write_audio function, takes in an audio tensor with a file path and writes the audio to a file.
"""
import torch
test_path = test_config.data_path / 'test_audio.wav'
audio_path = test_config.data_path / 'test_audio.pt'
audio_list = torch.load(audio_path)
output.write_audio(audio_list, test_path)
assert test_path.is_file()
assert test_path.stat().st_size == 592858
test_path.unlink()
def test_assemble_zip():
"""
Tests assemble_zip function, which collects all the audio files from the output directory,
and zips them up into a zip directory.
"""
from shutil import copy2
if not config.output_path.exists():
config.output_path.mkdir()
title = "speaker_samples"
zip_path = config.output_path / 'speaker_samples.zip'
wav1_path = config.output_path / 'speaker_en_0.wav'
wav2_path = config.output_path / 'speaker_en_110.wav'
for file_path in config.resource_path.iterdir():
if file_path.suffix == '.wav':
copy2(file_path, config.output_path)
_ = output.assemble_zip(title)
assert zip_path.is_file()
assert not wav1_path.is_file()
assert not wav2_path.is_file()
zip_path.unlink()