Files
Auto-GPT/tests/test_audio_text_read_audio.py
2023-05-19 20:18:32 +01:00

62 lines
2.2 KiB
Python

# Date: 2023-5-13
# Author: Generated by GoCodeo.
import json
from io import BytesIO
from unittest.mock import MagicMock, patch
import pytest
from autogpt.commands.audio_text import read_audio
patch_func1 = "autogpt.commands.audio_text.CFG"
class TestReadAudio:
@patch("requests.post")
def test_positive_read_audio(self, mock_post):
# Positive Test
audio_data = b"test_audio_data"
mock_response = MagicMock()
mock_response.content.decode.return_value = json.dumps(
{"text": "Hello, world!"}
)
mock_post.return_value = mock_response
with patch(patch_func1) as mock_cfg:
mock_cfg.huggingface_api_token = "testing-token"
result = read_audio(audio_data)
assert result == "The audio says: Hello, world!"
mock_post.assert_called_once_with(
f"https://api-inference.huggingface.co/models/{mock_cfg.huggingface_audio_to_text_model}",
headers={"Authorization": f"Bearer {mock_cfg.huggingface_api_token}"},
data=audio_data,
)
@patch("requests.post")
def test_negative_read_audio(self, mock_post):
# Negative Test
audio_data = b"test_audio_data"
mock_response = MagicMock()
mock_response.content.decode.return_value = json.dumps({"text": ""})
mock_post.return_value = mock_response
with patch(patch_func1) as mock_cfg:
mock_cfg.huggingface_api_token = "testing-token"
result = read_audio(audio_data)
assert result == "The audio says: "
mock_post.assert_called_once_with(
f"https://api-inference.huggingface.co/models/{mock_cfg.huggingface_audio_to_text_model}",
headers={"Authorization": f"Bearer {mock_cfg.huggingface_api_token}"},
data=audio_data,
)
def test_error_read_audio(self):
# Error Test
with patch(patch_func1) as mock_cfg:
mock_cfg.huggingface_api_token = None
with pytest.raises(ValueError):
read_audio(b"test_audio_data")
def test_edge_read_audio_empty_audio(self):
# Edge Test
with pytest.raises(ValueError):
read_audio(b"")