Exemple #1
0
    def test_translate_source_target(cls):
        service = ibm_watson.LanguageTranslatorV3(version='2018-05-01',
                                                  iam_apikey='iam_apikey')
        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')

        response = service.translate('Hola, cómo estás? €',
                                     source='es',
                                     target='en').get_result()
        assert len(responses.calls) == 2
        assert responses.calls[1].request.url.startswith(url)
        assert response == expected
        TranslationResult._from_dict(response)
Exemple #2
0
    def test_translate_model_id(cls):
        service = ibm_watson.LanguageTranslatorV3(version='2018-05-01',
                                                  iam_apikey='iam_apikey')
        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')
        response = service.translate(
            'Messi is the best ever',
            model_id='en-es-conversational').get_result()

        assert len(responses.calls) == 2
        assert responses.calls[1].request.url.startswith(url)
        assert response == expected
        TranslationResult._from_dict(response)
Exemple #3
0
 def test_create_model(cls):
     service = ibm_watson.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(
             join(dirname(__file__),
                  '../../resources/language_translator_model.tmx'),
             'rb') as custom_model:
         response = service.create_model(
             'en-fr', name='test_glossary',
             forced_glossary=custom_model).get_result()
     assert len(responses.calls) == 1
     assert responses.calls[0].request.url.startswith(url)
     assert response == expected
     TranslationModel._from_dict(response)
Exemple #4
0
 def test_get_model(cls):
     service = ibm_watson.LanguageTranslatorV3(version='2018-05-01',
                                               iam_apikey='iam_apikey')
     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')
     response = service.get_model(model_id).get_result()
     assert len(responses.calls) == 2
     assert responses.calls[1].request.url.startswith(url)
     assert response == expected
     TranslationModel._from_dict(response)
Exemple #5
0
 def test_identify(cls):
     service = ibm_watson.LanguageTranslatorV3(version='2018-05-01',
                                               iam_apikey='iam_apikey')
     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')
     response = service.identify('祝你有美好的一天').get_result()
     assert len(responses.calls) == 2
     assert responses.calls[1].request.url.startswith(url)
     assert response == expected
     IdentifiedLanguages._from_dict(response)
Exemple #6
0
    def test_document_translation(cls):
        document_status = {
            'status': 'processing',
            'model_id': 'en-es',
            'target': 'es',
            'created': '2019-06-05T20:59:37',
            'filename': 'hello_world.txt',
            'source': 'en',
            'document_id': '2a683723'
        }
        endpoint = '/v3/documents'
        url = '{0}{1}'.format(base_url, endpoint)
        responses.add(responses.POST,
                      url,
                      body=json.dumps(document_status),
                      status=200,
                      content_type='application_json')
        responses.add(responses.DELETE, url + '/2a683723', status=200)
        responses.add(responses.GET,
                      url,
                      body=json.dumps({'documents': [document_status]}),
                      status=200,
                      content_type='application_json')
        responses.add(responses.GET,
                      url + '/2a683723/translated_document?version=2018-05-01',
                      body='binary response',
                      status=200)
        responses.add(responses.GET,
                      url + '/2a683723?version=2018-05-01',
                      body=json.dumps(document_status),
                      status=200,
                      content_type='application_json')
        authenticator = BasicAuthenticator('xxx', 'yyy')
        language_translator = ibm_watson.LanguageTranslatorV3(
            '2018-05-01', authenticator=authenticator)

        with open(join(dirname(__file__), '../../resources/hello_world.txt'),
                  'r') as fileinfo:
            translation = language_translator.translate_document(
                file=fileinfo,
                file_content_type='text/plain',
                model_id='en-es').get_result()
            assert translation == document_status

        status = language_translator.list_documents().get_result()
        assert status['documents'][0]['document_id'] == '2a683723'

        delete_result = language_translator.delete_document(
            '2a683723').get_result()
        assert delete_result is None

        response = language_translator.get_translated_document(
            '2a683723', accept='text/plain').get_result()
        assert response.content is not None

        doc_status = language_translator.get_document_status(
            '2a683723').get_result()
        assert doc_status['document_id'] == '2a683723'

        assert len(responses.calls) == 5
Exemple #7
0
 def __init__(self, personality_url, personality_key, translator_url,
              translator_key):
     self.personality = ibm_watson.PersonalityInsightsV3(
         version='2017-10-13',
         url=personality_url,
         iam_apikey=personality_key)
     self.language_translator = ibm_watson.LanguageTranslatorV3(
         version='2018-05-01',
         url=translator_url,
         iam_apikey=translator_key)
def test_list_identifiable_languages():
    service = ibm_watson.LanguageTranslatorV3(
        version='2018-05-01',
        iam_apikey='iam_apikey')
    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().get_result()
    assert len(responses.calls) == 2
    assert responses.calls[1].request.url.startswith(url)
    assert response == expected
    IdentifiableLanguages._from_dict(response)
Exemple #9
0
 def test_delete_model(cls):
     service = ibm_watson.LanguageTranslatorV3(version='2018-05-01',
                                               iam_apikey='iam_apikey')
     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')
     response = service.delete_model(model_id).get_result()
     assert len(responses.calls) == 2
     assert responses.calls[1].request.url.startswith(url)
     assert response == expected
     DeleteModelResult._from_dict(response)
Exemple #10
0
 def test_list_models(cls):
     authenticator = IAMAuthenticator('apikey')
     service = ibm_watson.LanguageTranslatorV3('2018-05-01',
                                               authenticator=authenticator)
     endpoint = '/v3/models'
     url = '{0}{1}'.format(base_url, endpoint)
     expected = {
         "models": [{
             "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"
         }, {
             "status": "available",
             "model_id": "es-en",
             "domain": "news",
             "target": "en",
             "customizable": True,
             "source": "es",
             "base_model_id": "",
             "owner": "",
             "default_model": True,
             "name": "es-en"
         }]
     }
     responses.add(responses.GET,
                   url,
                   body=json.dumps(expected),
                   status=200,
                   content_type='application/json')
     response = service.list_models().get_result()
     assert len(responses.calls) == 2
     assert responses.calls[1].request.url.startswith(url)
     assert response == expected
     TranslationModels._from_dict(response)
 def setup_class(cls):
     cls.language_translator = ibm_watson.LanguageTranslatorV3('2018-05-01')
     cls.language_translator.set_default_headers({'X-Watson-Test': '1'})