コード例 #1
0
def test_identify():
    service = watson_developer_cloud.LanguageTranslatorV3(
        version='2018-05-01', iam_api_key='iam_api_key')
    endpoint = '/v3/identify'
    url = '{0}{1}'.format(base_url, endpoint)
    expected = {
        "languages": [{
            "confidence": 0.477673,
            "language": "zh"
        }, {
            "confidence": 0.262053,
            "language": "zh-TW"
        }, {
            "confidence": 0.00958378,
            "language": "en"
        }]
    }
    responses.add(responses.POST,
                  url,
                  body=json.dumps(expected),
                  status=200,
                  content_type='application/json')
    responses.add(responses.POST,
                  url=iam_url,
                  body=iam_token_response,
                  status=200)
    response = service.identify('祝你有美好的一天')
    assert len(responses.calls) == 2
    assert responses.calls[1].request.url.startswith(url)
    assert response == expected
    IdentifiedLanguages._from_dict(response)
コード例 #2
0
def test_translate_source_target():
    service = watson_developer_cloud.LanguageTranslatorV3(
        version='2018-05-01', iam_api_key='iam_api_key')
    endpoint = '/v3/translate'
    url = '{0}{1}'.format(base_url, endpoint)
    expected = {
        "character_count": 19,
        "translations": [{
            "translation": u"Hello, how are you ? \u20ac"
        }],
        "word_count": 4
    }
    responses.add(responses.POST,
                  url,
                  body=json.dumps(expected),
                  status=200,
                  content_type='application/json')
    responses.add(responses.POST,
                  url=iam_url,
                  body=iam_token_response,
                  status=200)

    response = service.translate('Hola, cómo estás? €',
                                 source='es',
                                 target='en')
    assert len(responses.calls) == 2
    assert responses.calls[1].request.url.startswith(url)
    assert response == expected
    TranslationResult._from_dict(response)
コード例 #3
0
def test_translate_model_id():
    service = watson_developer_cloud.LanguageTranslatorV3(
        version='2018-05-01', iam_api_key='iam_api_key')
    endpoint = '/v3/translate'
    url = '{0}{1}'.format(base_url, endpoint)
    expected = {
        "character_count": 22,
        "translations": [{
            "translation": "Messi es el mejor"
        }],
        "word_count": 5
    }
    responses.add(responses.POST,
                  url,
                  body=json.dumps(expected),
                  status=200,
                  content_type='application/json')
    responses.add(responses.POST,
                  url=iam_url,
                  body=iam_token_response,
                  status=200)
    response = service.translate('Messi is the best ever',
                                 model_id='en-es-conversational')

    assert len(responses.calls) == 2
    assert responses.calls[1].request.url.startswith(url)
    assert response == expected
    TranslationResult._from_dict(response)
コード例 #4
0
def test_get_model():
    service = watson_developer_cloud.LanguageTranslatorV3(
        version='2018-05-01', iam_api_key='iam_api_key')
    model_id = 'en-es-conversational'
    endpoint = '/v3/models/' + model_id
    url = '{0}{1}'.format(base_url, endpoint)
    expected = {
        "status": "available",
        "model_id": "en-es-conversational",
        "domain": "conversational",
        "target": "es",
        "customizable": False,
        "source": "en",
        "base_model_id": "",
        "owner": "",
        "default_model": False,
        "name": "en-es-conversational"
    }
    responses.add(responses.GET,
                  url,
                  body=json.dumps(expected),
                  status=200,
                  content_type='application/json')
    responses.add(responses.POST,
                  url=iam_url,
                  body=iam_token_response,
                  status=200)
    response = service.get_model(model_id)
    assert len(responses.calls) == 2
    assert responses.calls[1].request.url.startswith(url)
    assert response == expected
    TranslationModel._from_dict(response)
コード例 #5
0
def test_create_model():
    service = watson_developer_cloud.LanguageTranslatorV3(version='2018-05-01',
                                                          username='******',
                                                          password='******')
    endpoint = '/v3/models'
    url = '{0}{1}'.format(base_url, endpoint)
    expected = {
        "status": "available",
        "model_id": "en-es-conversational",
        "domain": "conversational",
        "target": "es",
        "customizable": False,
        "source": "en",
        "base_model_id": "en-es-conversational",
        "owner": "",
        "default_model": False,
        "name": "test_glossary"
    }
    responses.add(responses.POST,
                  url,
                  body=json.dumps(expected),
                  status=200,
                  content_type='application/json')
    with open(
            os.path.join(os.path.dirname(__file__),
                         '../../resources/language_translator_model.tmx'),
            'rb') as custom_model:
        response = service.create_model('en-fr',
                                        name='test_glossary',
                                        forced_glossary=custom_model)
    assert len(responses.calls) == 1
    assert responses.calls[0].request.url.startswith(url)
    assert response == expected
    TranslationModel._from_dict(response)
コード例 #6
0
    def authenticate(
        self,
        api,
        user,
        pswd,
    ):
        # Watson 音声認識
        if (api == 'stt'):
            try:
                self.stt = watson.SpeechToTextV1(
                    url='https://stream.watsonplatform.net/speech-to-text/api',
                    username=user,
                    password=pswd,
                )
                return True
            except:
                pass

        # Watson 翻訳機能
        if (api == 'tra'):
            try:
                self.tra = watson.LanguageTranslatorV3(
                    version='2018-05-01',
                    url=
                    'https://gateway.watsonplatform.net/language-translator/api',
                    username=user,
                    password=pswd,
                )
                return True
            except:
                pass

        # Watson 音声合成
        if (api == 'tts'):
            try:
                self.tts = watson.TextToSpeechV1(
                    url='https://stream.watsonplatform.net/text-to-speech/api',
                    username=user,
                    password=pswd,
                )
                return True
            except:
                pass

        return False
コード例 #7
0
def test_list_identifiable_languages():
    service = watson_developer_cloud.LanguageTranslatorV3(
        version='2018-05-01', iam_api_key='iam_api_key')
    endpoint = '/v3/identifiable_languages'
    url = '{0}{1}'.format(base_url, endpoint)
    expected = {
        "languages": [{
            "name": "German",
            "language": "de"
        }, {
            "name": "Greek",
            "language": "el"
        }, {
            "name": "English",
            "language": "en"
        }, {
            "name": "Esperanto",
            "language": "eo"
        }, {
            "name": "Spanish",
            "language": "es"
        }, {
            "name": "Chinese",
            "language": "zh"
        }]
    }
    responses.add(responses.GET,
                  url,
                  body=json.dumps(expected),
                  status=200,
                  content_type='application/json')
    responses.add(responses.POST,
                  url=iam_url,
                  body=iam_token_response,
                  status=200)
    response = service.list_identifiable_languages()
    assert len(responses.calls) == 2
    assert responses.calls[1].request.url.startswith(url)
    assert response == expected
    IdentifiableLanguages._from_dict(response)
コード例 #8
0
def test_delete_model():
    service = watson_developer_cloud.LanguageTranslatorV3(
        version='2018-05-01', iam_api_key='iam_api_key')
    model_id = 'en-es-conversational'
    endpoint = '/v3/models/' + model_id
    url = '{0}{1}'.format(base_url, endpoint)
    expected = {
        "status": "OK",
    }
    responses.add(responses.DELETE,
                  url,
                  body=json.dumps(expected),
                  status=200,
                  content_type='application/json')
    responses.add(responses.POST,
                  url=iam_url,
                  body=iam_token_response,
                  status=200)
    response = service.delete_model(model_id)
    assert len(responses.calls) == 2
    assert responses.calls[1].request.url.startswith(url)
    assert response == expected
    DeleteModelResult._from_dict(response)