Added tests
This commit is contained in:
parent
fcacecbef0
commit
993e74dc77
2 changed files with 183 additions and 17 deletions
|
|
@ -3,6 +3,7 @@ from __future__ import unicode_literals
|
|||
from botocore.exceptions import ClientError
|
||||
import boto3
|
||||
import sure # noqa
|
||||
from nose.tools import assert_raises
|
||||
from moto import mock_polly
|
||||
|
||||
# Polly only available in a few regions
|
||||
|
|
@ -95,15 +96,180 @@ def test_synthesize_speech():
|
|||
Content=LEXICON_XML
|
||||
)
|
||||
|
||||
a = client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat='pcm',
|
||||
SampleRate='16000',
|
||||
Text='test1234',
|
||||
TextType='text',
|
||||
VoiceId='Astrid'
|
||||
tests = (
|
||||
('pcm', 'audio/pcm'),
|
||||
('mp3', 'audio/mpeg'),
|
||||
('ogg_vorbis', 'audio/ogg'),
|
||||
)
|
||||
# TODO check content type
|
||||
print()
|
||||
for output_format, content_type in tests:
|
||||
resp = client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat=output_format,
|
||||
SampleRate='16000',
|
||||
Text='test1234',
|
||||
TextType='text',
|
||||
VoiceId='Astrid'
|
||||
)
|
||||
resp['ContentType'].should.equal(content_type)
|
||||
|
||||
# Todo expand synthesize speech tests for bad config
|
||||
|
||||
@mock_polly
|
||||
def test_synthesize_speech_bad_lexicon():
|
||||
client = boto3.client('polly', region_name=DEFAULT_REGION)
|
||||
client.put_lexicon(Name='test', Content=LEXICON_XML)
|
||||
|
||||
try:
|
||||
client.synthesize_speech(
|
||||
LexiconNames=['test2'],
|
||||
OutputFormat='pcm',
|
||||
SampleRate='16000',
|
||||
Text='test1234',
|
||||
TextType='text',
|
||||
VoiceId='Astrid'
|
||||
)
|
||||
except ClientError as err:
|
||||
err.response['Error']['Code'].should.equal('LexiconNotFoundException')
|
||||
else:
|
||||
raise RuntimeError('Should of raised LexiconNotFoundException')
|
||||
|
||||
|
||||
@mock_polly
|
||||
def test_synthesize_speech_bad_output_format():
|
||||
client = boto3.client('polly', region_name=DEFAULT_REGION)
|
||||
client.put_lexicon(Name='test', Content=LEXICON_XML)
|
||||
|
||||
try:
|
||||
client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat='invalid',
|
||||
SampleRate='16000',
|
||||
Text='test1234',
|
||||
TextType='text',
|
||||
VoiceId='Astrid'
|
||||
)
|
||||
except ClientError as err:
|
||||
err.response['Error']['Code'].should.equal('InvalidParameterValue')
|
||||
else:
|
||||
raise RuntimeError('Should of raised ')
|
||||
|
||||
|
||||
@mock_polly
|
||||
def test_synthesize_speech_bad_sample_rate():
|
||||
client = boto3.client('polly', region_name=DEFAULT_REGION)
|
||||
client.put_lexicon(Name='test', Content=LEXICON_XML)
|
||||
|
||||
try:
|
||||
client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat='pcm',
|
||||
SampleRate='18000',
|
||||
Text='test1234',
|
||||
TextType='text',
|
||||
VoiceId='Astrid'
|
||||
)
|
||||
except ClientError as err:
|
||||
err.response['Error']['Code'].should.equal('InvalidSampleRateException')
|
||||
else:
|
||||
raise RuntimeError('Should of raised ')
|
||||
|
||||
|
||||
@mock_polly
|
||||
def test_synthesize_speech_bad_text_type():
|
||||
client = boto3.client('polly', region_name=DEFAULT_REGION)
|
||||
client.put_lexicon(Name='test', Content=LEXICON_XML)
|
||||
|
||||
try:
|
||||
client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat='pcm',
|
||||
SampleRate='16000',
|
||||
Text='test1234',
|
||||
TextType='invalid',
|
||||
VoiceId='Astrid'
|
||||
)
|
||||
except ClientError as err:
|
||||
err.response['Error']['Code'].should.equal('InvalidParameterValue')
|
||||
else:
|
||||
raise RuntimeError('Should of raised ')
|
||||
|
||||
|
||||
@mock_polly
|
||||
def test_synthesize_speech_bad_voice_id():
|
||||
client = boto3.client('polly', region_name=DEFAULT_REGION)
|
||||
client.put_lexicon(Name='test', Content=LEXICON_XML)
|
||||
|
||||
try:
|
||||
client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat='pcm',
|
||||
SampleRate='16000',
|
||||
Text='test1234',
|
||||
TextType='text',
|
||||
VoiceId='Luke'
|
||||
)
|
||||
except ClientError as err:
|
||||
err.response['Error']['Code'].should.equal('InvalidParameterValue')
|
||||
else:
|
||||
raise RuntimeError('Should of raised ')
|
||||
|
||||
|
||||
@mock_polly
|
||||
def test_synthesize_speech_text_too_long():
|
||||
client = boto3.client('polly', region_name=DEFAULT_REGION)
|
||||
client.put_lexicon(Name='test', Content=LEXICON_XML)
|
||||
|
||||
try:
|
||||
client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat='pcm',
|
||||
SampleRate='16000',
|
||||
Text='test1234'*376, # = 3008 characters
|
||||
TextType='text',
|
||||
VoiceId='Astrid'
|
||||
)
|
||||
except ClientError as err:
|
||||
err.response['Error']['Code'].should.equal('TextLengthExceededException')
|
||||
else:
|
||||
raise RuntimeError('Should of raised ')
|
||||
|
||||
|
||||
@mock_polly
|
||||
def test_synthesize_speech_bad_speech_marks1():
|
||||
client = boto3.client('polly', region_name=DEFAULT_REGION)
|
||||
client.put_lexicon(Name='test', Content=LEXICON_XML)
|
||||
|
||||
try:
|
||||
client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat='pcm',
|
||||
SampleRate='16000',
|
||||
Text='test1234',
|
||||
TextType='text',
|
||||
SpeechMarkTypes=['word'],
|
||||
VoiceId='Astrid'
|
||||
)
|
||||
except ClientError as err:
|
||||
err.response['Error']['Code'].should.equal('MarksNotSupportedForFormatException')
|
||||
else:
|
||||
raise RuntimeError('Should of raised ')
|
||||
|
||||
|
||||
@mock_polly
|
||||
def test_synthesize_speech_bad_speech_marks2():
|
||||
client = boto3.client('polly', region_name=DEFAULT_REGION)
|
||||
client.put_lexicon(Name='test', Content=LEXICON_XML)
|
||||
|
||||
try:
|
||||
client.synthesize_speech(
|
||||
LexiconNames=['test'],
|
||||
OutputFormat='pcm',
|
||||
SampleRate='16000',
|
||||
Text='test1234',
|
||||
TextType='ssml',
|
||||
SpeechMarkTypes=['word'],
|
||||
VoiceId='Astrid'
|
||||
)
|
||||
except ClientError as err:
|
||||
err.response['Error']['Code'].should.equal('MarksNotSupportedForFormatException')
|
||||
else:
|
||||
raise RuntimeError('Should of raised ')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue