test_ss_docomo_aitalk.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # -*- coding: utf-8 -*-
00003 
00004 # import python libraries
00005 import os
00006 import rospy
00007 import logging
00008 import unittest
00009 import ConfigParser
00010 
00011 # import pypi libraries
00012 from nose.tools import raises
00013 from nose.tools import nottest
00014 
00015 # import local libraries
00016 from rospeex_core.ss.docomo_aitalk import Client
00017 from rospeex_core import exceptions as ext
00018 
00019 # setup logging
00020 FORMAT = '[%(levelname)s] %(message)s @%(filename)s:%(funcName)s:%(lineno)d'
00021 logging.basicConfig(format=FORMAT, level=logging.DEBUG)
00022 logger = logging.getLogger(__name__)
00023 
00024 
00025 class TestVoiceTextClient(unittest.TestCase):
00026     def setUp(self):
00027         base_dir = os.path.dirname(__file__)
00028         settings = ConfigParser.ConfigParser()
00029         filename = os.path.join(base_dir, 'config.cfg')
00030 
00031         settings.read(filename)
00032 
00033         self.big_text_file = os.path.join(
00034             base_dir,
00035             settings.get('SpeechSynthesis', 'big_text_for_docomo_aitalk_file')
00036         )
00037         self.api_key = settings.get('SpeechSynthesis', 'docomo_api_key')
00038 
00039         self.big_text_data = None
00040         with open(self.big_text_file, 'r') as f:
00041             self.big_text_data = f.read()
00042 
00043     @raises(ext.ParameterException)
00044     def test_request_invalid_message(self):
00045         message = None
00046         language = 'ja'
00047         voice_font = '*'
00048         timeout = 100
00049         client = Client()
00050         client._key = self.api_key
00051         client.request(message, language, voice_font, timeout)
00052 
00053     @raises(ext.ParameterException)
00054     def test_request_invalid_too_long_message(self):
00055         message = ''
00056         language = 'ja'
00057         voice_font = 'seiji'
00058         timeout = 100
00059         client = Client()
00060         client._key = self.api_key
00061 
00062         # create too long message
00063         for i in range(300):
00064             message = message + 'a'
00065 
00066         client.request(message, language, voice_font, timeout)
00067 
00068     @raises(ext.ParameterException)
00069     def test_request_invalid_long_utf8_message(self):
00070         message = u''
00071         language = 'ja'
00072         voice_font = 'seiji'
00073         timeout = 100
00074         client = Client()
00075         client._key = self.api_key
00076 
00077         # create too long message
00078         for i in range(201):
00079             message = message + u'あ'
00080         client.request(message, language, voice_font, timeout)
00081 
00082     @nottest
00083     @raises(ext.InvalidResponseException)
00084     def test_request_invalid_message_charactor(self):
00085         message = '<'
00086         language = 'ja'
00087         voice_font = 'seiji'
00088         timeout = 100
00089         client = Client()
00090         client._key = self.api_key
00091         client.request(message, language, voice_font, timeout)
00092 
00093     @raises(ext.UnsupportedLanguageException)
00094     def test_request_invalid_language(self):
00095         message = 'hello'
00096         language = 'de'        # deutsch
00097         voice_font = 'seiji'
00098         timeout = 100
00099         client = Client()
00100         client._key = self.api_key
00101         client.request(message, language, voice_font, timeout)
00102 
00103     @raises(ext.ParameterException)
00104     def test_request_invalid_api_key(self):
00105         message = 'hello'
00106         language = 'ja'        # deutsch
00107         voice_font = 'seiji'
00108         timeout = 100
00109         client = Client()
00110         client.request(message, language, voice_font, timeout)
00111 
00112     @raises(ext.InvalidResponseException)
00113     def test_request_invalid_url(self):
00114         message = 'hello'
00115         language = 'ja'
00116         voice_font = 'seiji'
00117         timeout = 100
00118         client = Client()
00119         client.URL = 'http://rospeex.nict.go.jp/nauth_json/jsServices/hoge'
00120         client._key = self.api_key
00121         client.request(message, language, voice_font, timeout)
00122 
00123     @raises(ext.ParameterException)
00124     def test_request_invalid_voice_font(self):
00125         message = 'hello'
00126         language = 'ja'
00127         voice_font = 'hogehoge'
00128         timeout = 100
00129         client = Client()
00130         client._key = self.api_key
00131         client.request(message, language, voice_font, timeout)
00132 
00133     @nottest
00134     @raises(ext.RequestTimeoutException)
00135     def test_request_server_timeout_post(self):
00136         message = self.big_text_data
00137         language = 'ja'
00138         voice_font = 'seiji'
00139         timeout = 2
00140         client = Client()
00141         client._key = self.api_key
00142         client.request(message, language, voice_font, timeout)
00143 
00144     @nottest
00145     def test_request_valid_big_message(self):
00146         message = self.big_text_data
00147         language = 'ja'
00148         voice_font = 'seiji'
00149         timeout = 1000000
00150         client = Client()
00151         client._key = self.api_key
00152         client.request(message, language, voice_font, timeout)
00153 
00154     @nottest
00155     def test_request_valid_japanese_message(self):
00156         message = u'こんにちは'
00157         language = 'ja'
00158         voice_font = 'seiji'
00159         timeout = 10000
00160         client = Client()
00161         client._key = self.api_key
00162         client.request(message.encode('utf-8'), language, voice_font, timeout)
00163 
00164     @nottest
00165     def test_request_valid_voice_fonts(self):
00166         message = u'こんにちは'
00167         language = 'ja'
00168         timeout = 10000
00169         client = Client()
00170         client._key = self.api_key
00171 
00172         for speaker in client.SPEAKER_LIST:
00173             client.request(message.encode('utf-8'), language, speaker, timeout)
00174             rospy.sleep(2)
00175 
00176 
00177 if __name__ == '__main__':
00178     import rosunit
00179     test_class = TestVoiceTextClient
00180     rosunit.unitrun(
00181         'rospeex_core',
00182         'speech_synthesis_client_docomo_aitalk',
00183         test_class,
00184         None,
00185         coverage_packages=['rospeex_core.ss']
00186     )


rospeex_core
Author(s): Komei Sugiura
autogenerated on Thu Jun 6 2019 18:53:10