From bbecbd2acd7952a01f54a6c959131193b17d086d Mon Sep 17 00:00:00 2001
From: kbalk <7536198+kbalk@users.noreply.github.com>
Date: Wed, 16 Aug 2023 17:56:23 -0400
Subject: [PATCH] Techdebt: Replace sure with regular assertions in Polly
(#6679)
---
tests/test_polly/test_polly.py | 530 ++++++++++++++++----------------
tests/test_polly/test_server.py | 9 +-
2 files changed, 265 insertions(+), 274 deletions(-)
diff --git a/tests/test_polly/test_polly.py b/tests/test_polly/test_polly.py
index 1700dfeb9..c02788905 100644
--- a/tests/test_polly/test_polly.py
+++ b/tests/test_polly/test_polly.py
@@ -1,267 +1,263 @@
-from botocore.exceptions import ClientError
-import boto3
-import sure # noqa # pylint: disable=unused-import
-from moto import mock_polly
-
-# Polly only available in a few regions
-DEFAULT_REGION = "eu-west-1"
-
-LEXICON_XML = """
-
-
- W3C
- World Wide Web Consortium
-
-"""
-
-
-@mock_polly
-def test_describe_voices():
- client = boto3.client("polly", region_name=DEFAULT_REGION)
-
- resp = client.describe_voices()
- len(resp["Voices"]).should.be.greater_than(1)
-
- resp = client.describe_voices(LanguageCode="en-GB")
- len(resp["Voices"]).should.equal(4)
-
- try:
- client.describe_voices(LanguageCode="SOME_LANGUAGE")
- except ClientError as err:
- err.response["Error"]["Code"].should.equal("400")
- else:
- raise RuntimeError("Should have raised an exception")
-
-
-@mock_polly
-def test_put_list_lexicon():
- client = boto3.client("polly", region_name=DEFAULT_REGION)
-
- # Return nothing
- client.put_lexicon(Name="test", Content=LEXICON_XML)
-
- resp = client.list_lexicons()
- len(resp["Lexicons"]).should.equal(1)
-
-
-@mock_polly
-def test_put_get_lexicon():
- client = boto3.client("polly", region_name=DEFAULT_REGION)
-
- # Return nothing
- client.put_lexicon(Name="test", Content=LEXICON_XML)
-
- resp = client.get_lexicon(Name="test")
- resp.should.contain("Lexicon")
- resp.should.contain("LexiconAttributes")
-
-
-@mock_polly
-def test_put_lexicon_bad_name():
- client = boto3.client("polly", region_name=DEFAULT_REGION)
-
- try:
- client.put_lexicon(Name="test-invalid", Content=LEXICON_XML)
- except ClientError as err:
- err.response["Error"]["Code"].should.equal("InvalidParameterValue")
- else:
- raise RuntimeError("Should have raised an exception")
-
-
-@mock_polly
-def test_synthesize_speech():
- client = boto3.client("polly", region_name=DEFAULT_REGION)
-
- # Return nothing
- client.put_lexicon(Name="test", Content=LEXICON_XML)
-
- tests = (("pcm", "audio/pcm"), ("mp3", "audio/mpeg"), ("ogg_vorbis", "audio/ogg"))
- 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)
-
-
-@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 have 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 have 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 have 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 have 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 have 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 have 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 have 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 have raised ")
-
-
-@mock_polly
-def test_update_lexicon():
- client = boto3.client("polly", region_name=DEFAULT_REGION)
- client.put_lexicon(Name="test", Content=LEXICON_XML)
- client.put_lexicon(Name="test", Content=LEXICON_XML)
+import boto3
+from botocore.exceptions import ClientError
+
+from moto import mock_polly
+
+# Polly only available in a few regions
+DEFAULT_REGION = "eu-west-1"
+
+LEXICON_XML = """
+
+
+ W3C
+ World Wide Web Consortium
+
+"""
+
+
+@mock_polly
+def test_describe_voices():
+ client = boto3.client("polly", region_name=DEFAULT_REGION)
+
+ resp = client.describe_voices()
+ assert len(resp["Voices"]) >= 1
+
+ resp = client.describe_voices(LanguageCode="en-GB")
+ assert len(resp["Voices"]) == 4
+
+ try:
+ client.describe_voices(LanguageCode="SOME_LANGUAGE")
+ except ClientError as err:
+ assert err.response["Error"]["Code"] == "400"
+ else:
+ raise RuntimeError("Should have raised an exception")
+
+
+@mock_polly
+def test_put_list_lexicon():
+ client = boto3.client("polly", region_name=DEFAULT_REGION)
+
+ # Return nothing
+ client.put_lexicon(Name="test", Content=LEXICON_XML)
+
+ resp = client.list_lexicons()
+ assert len(resp["Lexicons"]) == 1
+
+
+@mock_polly
+def test_put_get_lexicon():
+ client = boto3.client("polly", region_name=DEFAULT_REGION)
+
+ # Return nothing
+ client.put_lexicon(Name="test", Content=LEXICON_XML)
+
+ resp = client.get_lexicon(Name="test")
+ assert "Lexicon" in resp
+ assert "LexiconAttributes" in resp
+
+
+@mock_polly
+def test_put_lexicon_bad_name():
+ client = boto3.client("polly", region_name=DEFAULT_REGION)
+
+ try:
+ client.put_lexicon(Name="test-invalid", Content=LEXICON_XML)
+ except ClientError as err:
+ assert err.response["Error"]["Code"] == "InvalidParameterValue"
+ else:
+ raise RuntimeError("Should have raised an exception")
+
+
+@mock_polly
+def test_synthesize_speech():
+ client = boto3.client("polly", region_name=DEFAULT_REGION)
+
+ # Return nothing
+ client.put_lexicon(Name="test", Content=LEXICON_XML)
+
+ tests = (("pcm", "audio/pcm"), ("mp3", "audio/mpeg"), ("ogg_vorbis", "audio/ogg"))
+ for output_format, content_type in tests:
+ resp = client.synthesize_speech(
+ LexiconNames=["test"],
+ OutputFormat=output_format,
+ SampleRate="16000",
+ Text="test1234",
+ TextType="text",
+ VoiceId="Astrid",
+ )
+ assert resp["ContentType"] == content_type
+
+
+@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:
+ assert err.response["Error"]["Code"] == "LexiconNotFoundException"
+ else:
+ raise RuntimeError("Should have 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:
+ assert err.response["Error"]["Code"] == "InvalidParameterValue"
+ else:
+ raise RuntimeError("Should have 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:
+ assert err.response["Error"]["Code"] == "InvalidSampleRateException"
+ else:
+ raise RuntimeError("Should have 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:
+ assert err.response["Error"]["Code"] == "InvalidParameterValue"
+ else:
+ raise RuntimeError("Should have 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:
+ assert err.response["Error"]["Code"] == "InvalidParameterValue"
+ else:
+ raise RuntimeError("Should have 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:
+ assert err.response["Error"]["Code"] == "TextLengthExceededException"
+ else:
+ raise RuntimeError("Should have 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:
+ assert err.response["Error"]["Code"] == "MarksNotSupportedForFormatException"
+ else:
+ raise RuntimeError("Should have 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:
+ assert err.response["Error"]["Code"] == "MarksNotSupportedForFormatException"
+ else:
+ raise RuntimeError("Should have raised ")
+
+
+@mock_polly
+def test_update_lexicon():
+ client = boto3.client("polly", region_name=DEFAULT_REGION)
+ client.put_lexicon(Name="test", Content=LEXICON_XML)
+ client.put_lexicon(Name="test", Content=LEXICON_XML)
diff --git a/tests/test_polly/test_server.py b/tests/test_polly/test_server.py
index 1668b280a..8db2b148f 100644
--- a/tests/test_polly/test_server.py
+++ b/tests/test_polly/test_server.py
@@ -1,12 +1,7 @@
-import sure # noqa # pylint: disable=unused-import
-
+"""Test the different server responses."""
import moto.server as server
from moto import mock_polly
-"""
-Test the different server responses
-"""
-
@mock_polly
def test_polly_list():
@@ -14,4 +9,4 @@ def test_polly_list():
test_client = backend.test_client()
res = test_client.get("/v1/lexicons")
- res.status_code.should.equal(200)
+ assert res.status_code == 200