| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | from botocore.exceptions import ClientError | 
					
						
							|  |  |  | import boto3 | 
					
						
							| 
									
										
										
										
											2021-10-18 19:44:29 +00:00
										 |  |  | import sure  # noqa # pylint: disable=unused-import | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | from moto import mock_polly | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Polly only available in a few regions | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  | DEFAULT_REGION = "eu-west-1" | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | LEXICON_XML = """<?xml version="1.0" encoding="UTF-8"?>
 | 
					
						
							| 
									
										
										
										
											2020-10-06 07:54:49 +02:00
										 |  |  | <lexicon version="1.0" | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |       xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" | 
					
						
							| 
									
										
										
										
											2020-10-06 07:54:49 +02:00
										 |  |  |       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
					
						
							|  |  |  |       xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" | 
					
						
							| 
									
										
										
										
											2020-10-06 07:54:49 +02:00
										 |  |  |       alphabet="ipa" | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |       xml:lang="en-US"> | 
					
						
							|  |  |  |   <lexeme> | 
					
						
							|  |  |  |     <grapheme>W3C</grapheme> | 
					
						
							|  |  |  |     <alias>World Wide Web Consortium</alias> | 
					
						
							|  |  |  |   </lexeme> | 
					
						
							|  |  |  | </lexicon>"""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_describe_voices(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resp = client.describe_voices() | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     len(resp["Voices"]).should.be.greater_than(1) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     resp = client.describe_voices(LanguageCode="en-GB") | 
					
						
							|  |  |  |     len(resp["Voices"]).should.equal(3) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         client.describe_voices(LanguageCode="SOME_LANGUAGE") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal("400") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised an exception") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_put_list_lexicon(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # Return nothing | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resp = client.list_lexicons() | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     len(resp["Lexicons"]).should.equal(1) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_put_get_lexicon(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # Return nothing | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     resp = client.get_lexicon(Name="test") | 
					
						
							|  |  |  |     resp.should.contain("Lexicon") | 
					
						
							|  |  |  |     resp.should.contain("LexiconAttributes") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_put_lexicon_bad_name(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         client.put_lexicon(Name="test-invalid", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal("InvalidParameterValue") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised an exception") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # Return nothing | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     tests = (("pcm", "audio/pcm"), ("mp3", "audio/mpeg"), ("ogg_vorbis", "audio/ogg")) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     for output_format, content_type in tests: | 
					
						
							|  |  |  |         resp = client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test"], | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |             OutputFormat=output_format, | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             SampleRate="16000", | 
					
						
							|  |  |  |             Text="test1234", | 
					
						
							|  |  |  |             TextType="text", | 
					
						
							|  |  |  |             VoiceId="Astrid", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         resp["ContentType"].should.equal(content_type) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech_bad_lexicon(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							|  |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test2"], | 
					
						
							|  |  |  |             OutputFormat="pcm", | 
					
						
							|  |  |  |             SampleRate="16000", | 
					
						
							|  |  |  |             Text="test1234", | 
					
						
							|  |  |  |             TextType="text", | 
					
						
							|  |  |  |             VoiceId="Astrid", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal("LexiconNotFoundException") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised LexiconNotFoundException") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech_bad_output_format(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							|  |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test"], | 
					
						
							|  |  |  |             OutputFormat="invalid", | 
					
						
							|  |  |  |             SampleRate="16000", | 
					
						
							|  |  |  |             Text="test1234", | 
					
						
							|  |  |  |             TextType="text", | 
					
						
							|  |  |  |             VoiceId="Astrid", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal("InvalidParameterValue") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised ") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech_bad_sample_rate(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							|  |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test"], | 
					
						
							|  |  |  |             OutputFormat="pcm", | 
					
						
							|  |  |  |             SampleRate="18000", | 
					
						
							|  |  |  |             Text="test1234", | 
					
						
							|  |  |  |             TextType="text", | 
					
						
							|  |  |  |             VoiceId="Astrid", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal("InvalidSampleRateException") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised ") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech_bad_text_type(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							|  |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test"], | 
					
						
							|  |  |  |             OutputFormat="pcm", | 
					
						
							|  |  |  |             SampleRate="16000", | 
					
						
							|  |  |  |             Text="test1234", | 
					
						
							|  |  |  |             TextType="invalid", | 
					
						
							|  |  |  |             VoiceId="Astrid", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal("InvalidParameterValue") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised ") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech_bad_voice_id(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							|  |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test"], | 
					
						
							|  |  |  |             OutputFormat="pcm", | 
					
						
							|  |  |  |             SampleRate="16000", | 
					
						
							|  |  |  |             Text="test1234", | 
					
						
							|  |  |  |             TextType="text", | 
					
						
							|  |  |  |             VoiceId="Luke", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal("InvalidParameterValue") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised ") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech_text_too_long(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							|  |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test"], | 
					
						
							|  |  |  |             OutputFormat="pcm", | 
					
						
							|  |  |  |             SampleRate="16000", | 
					
						
							|  |  |  |             Text="test1234" * 376,  # = 3008 characters | 
					
						
							|  |  |  |             TextType="text", | 
					
						
							|  |  |  |             VoiceId="Astrid", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal("TextLengthExceededException") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised ") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech_bad_speech_marks1(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							|  |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test"], | 
					
						
							|  |  |  |             OutputFormat="pcm", | 
					
						
							|  |  |  |             SampleRate="16000", | 
					
						
							|  |  |  |             Text="test1234", | 
					
						
							|  |  |  |             TextType="text", | 
					
						
							|  |  |  |             SpeechMarkTypes=["word"], | 
					
						
							|  |  |  |             VoiceId="Astrid", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal( | 
					
						
							|  |  |  |             "MarksNotSupportedForFormatException" | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised ") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_polly | 
					
						
							|  |  |  | def test_synthesize_speech_bad_speech_marks2(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("polly", region_name=DEFAULT_REGION) | 
					
						
							|  |  |  |     client.put_lexicon(Name="test", Content=LEXICON_XML) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         client.synthesize_speech( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |             LexiconNames=["test"], | 
					
						
							|  |  |  |             OutputFormat="pcm", | 
					
						
							|  |  |  |             SampleRate="16000", | 
					
						
							|  |  |  |             Text="test1234", | 
					
						
							|  |  |  |             TextType="ssml", | 
					
						
							|  |  |  |             SpeechMarkTypes=["word"], | 
					
						
							|  |  |  |             VoiceId="Astrid", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     except ClientError as err: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         err.response["Error"]["Code"].should.equal( | 
					
						
							|  |  |  |             "MarksNotSupportedForFormatException" | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         raise RuntimeError("Should of raised ") |