Esempio n. 1
0
    def test_multiple_choices(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # A: "First name"
        # U: "Mik"
        multiple_choices["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        multiple_choices["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(multiple_choices, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[7:15] in i18n.NO_CONTACT)

        # A: "I found: 1 Michael, 2 Martin, and 3 Riki."
        # U: "One"
        user_made_choice["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        user_made_choice["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(user_made_choice, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[-17:-8] in i18n.MESSAGE.format('Michael'))

        # A: "I found: 1 Michael, 2 Martin, and 3 Riki."
        # U: "Mik"
        user_says_wrong_on_choice["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        user_says_wrong_on_choice["session"]["user"][
            "accessToken"] = VALID_TOKEN
        event = handler(user_says_wrong_on_choice, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[7:30] in i18n.MAX_NO_CONTACT)
Esempio n. 2
0
    def test_first_time_setting_intent(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # Creates a new settings object in backend
        open_settings_first_time["context"]["System"]["user"]["accessToken"] = VALID_TOKEN
        open_settings_first_time["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(open_settings_first_time, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertEqual(ssml[7:-8], i18n.SETTINGS_OPENED)
Esempio n. 3
0
    def send_telegram(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        send_telegram["context"]["System"]["user"]["accessToken"] = VALID_TOKEN
        send_telegram["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(send_telegram, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        test_case = ssml.split('.')[1][1:-8]
        self.assertTrue(test_case in i18n.ANYTHING_ELSE)
    def test_account_not_authorized_launch_request(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        launch_request["context"]["System"]["user"][
            "accessToken"] = INVALID_TOKEN
        launch_request["session"]["user"]["accessToken"] = INVALID_TOKEN

        event = handler(launch_request, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertEqual(ssml, '<speak>{}</speak>'.format(i18n.NOT_AUTHORIZED))
    def authorization_with_no_phone(self):
        i18n = NonVerboseLanguageModel('de-DE', False)
        handler = sb.lambda_handler()

        # User wants to authorize: user did not add phone number
        no_phone_added["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        no_phone_added["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(no_phone_added, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertEqual(ssml, '<speak>{}</speak>'.format(i18n.NO_PHONE))
Esempio n. 6
0
    def start_send_intent(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # User says: "Send a telegram"
        start_send_intent["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        start_send_intent["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(start_send_intent, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[-16:-8] in i18n.FIRST_NAME)
    def test_account_not_linked_launch_request(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # Remove access token to simulate a user who did not link account
        launch_request["context"]["System"]["user"]["accessToken"] = None
        launch_request["session"]["user"]["accessToken"] = None

        event = handler(launch_request, None)
        ssml = ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertEqual(
            ssml, '<speak>{}</speak>'.format(i18n.ACCOUNT_LINKING_REQUIRED))
Esempio n. 8
0
    def test_multiple_telegrams(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # User: "******" (last one)
        multiple_messages_last_one["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        multiple_messages_last_one["session"]["user"][
            "accessToken"] = VALID_TOKEN
        event = handler(multiple_messages_last_one, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[-31:-8] in i18n.REPLY_SEND_OR_STOP)
Esempio n. 9
0
    def test_open_message_intent(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # User: "******".
        new_telegrams["context"]["System"]["user"]["accessToken"] = VALID_TOKEN
        new_telegrams["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(new_telegrams, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[-31:-8] in i18n.REPLY_OR_NEXT_TELEGRAM
                        or ssml[-31:-8] in i18n.REPLY_SEND_OR_STOP
                        or ssml[-40:-8] in i18n.NO_TELEGRAMS)
Esempio n. 10
0
    def ask_for_message(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # U: 'Lorenz'
        # Alexa now asks for message
        ask_for_message["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        ask_for_message["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(ask_for_message, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[19:-8] in i18n.MESSAGE.format('Lorenz'))
Esempio n. 11
0
    def test_authorized_launch_request(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        launch_request["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        launch_request["session"]["user"]["accessToken"] = VALID_TOKEN

        event = handler(launch_request, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        ssml = ssml[-7:8]
        self.assertTrue(ssml in i18n.WELCOME
                        or ssml in i18n.USER_HAS_TELEGRAMS)
Esempio n. 12
0
    def german_speed_dial(self):
        set_language_model('de-DE', True)
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        german_speed_dial["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        german_speed_dial["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(german_speed_dial, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[19:-8] in i18n.MESSAGE.format('Lorenz'))

        set_language_model('en-US', True)
Esempio n. 13
0
    def no_intent_on_new_telegrams(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # User answered No on question: "Welcome, do you want to hear your new Telegrams?"
        no_on_listen_to_new_telegrams["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        no_on_listen_to_new_telegrams["session"]["user"][
            "accessToken"] = VALID_TOKEN
        event = handler(no_on_listen_to_new_telegrams, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        ssml = ssml[-33:-8]
        self.assertTrue(ssml in i18n.HELP_USER)
Esempio n. 14
0
    def yes_intent_on_new_telegrams(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        yes_on_listen_to_new_telegrams["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        yes_on_listen_to_new_telegrams["session"]["user"][
            "accessToken"] = VALID_TOKEN
        event = handler(yes_on_listen_to_new_telegrams, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[-31:-8] in i18n.REPLY_OR_NEXT_TELEGRAM
                        or ssml[-31:-8] in i18n.REPLY_SEND_OR_STOP
                        or ssml[-40:-8] in i18n.NO_TELEGRAMS)
Esempio n. 15
0
    def test_send_intent_with_speed_number(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()

        # U: "10"
        # Alexa asks for message
        ask_for_message_speed_dial["context"]["System"]["user"][
            "accessToken"] = VALID_TOKEN
        ask_for_message_speed_dial["session"]["user"][
            "accessToken"] = VALID_TOKEN
        event = handler(ask_for_message_speed_dial, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[19:-8] in i18n.MESSAGE.format('Lorenz'))

        # U: "111"
        # Alexa: "No speed dial contact"
        ask_for_message_speed_dial["request"]["intent"]["slots"]["first_name"][
            "value"] = "111"
        event = handler(ask_for_message_speed_dial, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertTrue(ssml[19:-8] in i18n.NO_SPEED_DIAL_CONTACT)
Esempio n. 16
0
    def test_settings_intent(self):
        i18n = Constants.i18n
        handler = sb.lambda_handler()
        service = DailyTelegramsService()
        account = service.get_daily_telegrams_account()

        # User: "******"
        open_settings["context"]["System"]["user"]["accessToken"] = VALID_TOKEN
        open_settings["session"]["user"]["accessToken"] = VALID_TOKEN
        event = handler(open_settings, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        self.assertEqual(ssml[7:-8], i18n.SETTINGS_OPENED)

        # A: "In settings mode. Do you want to enable or disable non-verbose mode?"
        # U: "Enable/disable non-verbose mode"
        enable_non_verbose_mode["context"]["System"]["user"]["accessToken"] = VALID_TOKEN
        enable_non_verbose_mode["session"]["user"]["accessToken"] = VALID_TOKEN
        enable_non_verbose_mode["session"]["attributes"]["ACCOUNT"]["SETTINGS_ID"] = account.settings_id
        event = handler(enable_non_verbose_mode, None)
        ssml = event.get('response').get('outputSpeech').get('ssml')
        ssml = ssml[7:25]
        self.assertTrue(ssml in i18n.NON_VERBOSE_CHOICE.format(
            'enable') or ssml in i18n.NON_VERBOSE_CHOICE.format('disable'))