예제 #1
0
    def test_bad_recognition_response(self, mock_translate_hook,
                                      mock_speech_hook):
        mock_speech_hook.return_value.recognize_speech.return_value = RecognizeResponse(
            results=[SpeechRecognitionResult()])
        op = CloudTranslateSpeechOperator(
            audio={"uri": "gs://bucket/object"},
            config={"encoding": "LINEAR16"},
            target_language='pl',
            format_='text',
            source_language=None,
            model='base',
            gcp_conn_id=GCP_CONN_ID,
            task_id='id',
        )
        with self.assertRaises(AirflowException) as cm:
            op.execute(context=None)
        err = cm.exception
        self.assertIn("it should contain 'alternatives' field", str(err))

        mock_speech_hook.assert_called_once_with(
            gcp_conn_id=GCP_CONN_ID,
            impersonation_chain=None,
        )
        mock_translate_hook.assert_called_once_with(
            gcp_conn_id=GCP_CONN_ID,
            impersonation_chain=None,
        )

        mock_speech_hook.return_value.recognize_speech.assert_called_once_with(
            audio={"uri": "gs://bucket/object"},
            config={"encoding": "LINEAR16"},
        )

        mock_translate_hook.return_value.translate.assert_not_called()
예제 #2
0
    def test_minimal_green_path(self, mock_translate_hook, mock_speech_hook):
        mock_speech_hook.return_value.recognize_speech.return_value = RecognizeResponse(
            results=[
                SpeechRecognitionResult(alternatives=[
                    SpeechRecognitionAlternative(
                        transcript='test speech recognition result')
                ])
            ])
        mock_translate_hook.return_value.translate.return_value = [{
            'translatedText':
            'sprawdzić wynik rozpoznawania mowy',
            'detectedSourceLanguage':
            'en',
            'model':
            'base',
            'input':
            'test speech recognition result',
        }]

        op = CloudTranslateSpeechOperator(
            audio={"uri": "gs://bucket/object"},
            config={"encoding": "LINEAR16"},
            target_language='pl',
            format_='text',
            source_language=None,
            model='base',
            gcp_conn_id=GCP_CONN_ID,
            task_id='id',
            impersonation_chain=IMPERSONATION_CHAIN,
        )
        return_value = op.execute(context=None)

        mock_speech_hook.assert_called_once_with(
            gcp_conn_id=GCP_CONN_ID,
            impersonation_chain=IMPERSONATION_CHAIN,
        )
        mock_translate_hook.assert_called_once_with(
            gcp_conn_id=GCP_CONN_ID,
            impersonation_chain=IMPERSONATION_CHAIN,
        )

        mock_speech_hook.return_value.recognize_speech.assert_called_once_with(
            audio={"uri": "gs://bucket/object"},
            config={"encoding": "LINEAR16"},
        )

        mock_translate_hook.return_value.translate.assert_called_once_with(
            values='test speech recognition result',
            target_language='pl',
            format_='text',
            source_language=None,
            model='base',
        )
        assert [{
            'translatedText': 'sprawdzić wynik rozpoznawania mowy',
            'detectedSourceLanguage': 'en',
            'model': 'base',
            'input': 'test speech recognition result',
        }] == return_value