async def test_handle__languages_empty_languages_error(self):
     from randtalkbot.stranger_setup_wizard import get_languages_codes
     from randtalkbot.errors import EmptyLanguagesError
     self.stranger.wizard = 'setup'
     self.stranger.wizard_step = 'languages'
     get_languages_codes.side_effect = EmptyLanguagesError()
     self.stranger_setup_wizard._prompt = CoroutineMock()
     message = Mock()
     message.text = 'foo_text'
     self.assertTrue((await self.stranger_setup_wizard.handle(message)))
     get_languages_codes.assert_called_once_with('foo_text')
     self.stranger.set_languages.assert_not_called()
     self.stranger_setup_wizard._prompt.assert_called_once_with()
     self.sender.send_notification.assert_called_once_with(
         'Please specify at least one language.')
    async def test_handle__languages_language_not_found(self):
        from randtalkbot.stranger_setup_wizard import get_languages_codes
        from randtalkbot.i18n import LanguageNotFoundError

        self.stranger.wizard = "setup"
        self.stranger.wizard_step = "languages"
        get_languages_codes.side_effect = LanguageNotFoundError("foo_lang")
        self.stranger_setup_wizard._prompt = CoroutineMock()
        message = Mock()
        message.text = "foo_text"
        self.assertTrue((await self.stranger_setup_wizard.handle(message)))
        get_languages_codes.assert_called_once_with("foo_text")
        self.stranger.set_languages.assert_not_called()
        self.stranger_setup_wizard._prompt.assert_called_once_with()
        self.sender.send_notification.assert_called_once_with('Language "{0}" wasn\'t found.', "foo_lang")
    async def test_handle__languages_empty_languages_error(self):
        from randtalkbot.stranger_setup_wizard import get_languages_codes
        from randtalkbot.errors import EmptyLanguagesError

        self.stranger.wizard = "setup"
        self.stranger.wizard_step = "languages"
        get_languages_codes.side_effect = EmptyLanguagesError()
        self.stranger_setup_wizard._prompt = CoroutineMock()
        message = Mock()
        message.text = "foo_text"
        self.assertTrue((await self.stranger_setup_wizard.handle(message)))
        get_languages_codes.assert_called_once_with("foo_text")
        self.stranger.set_languages.assert_not_called()
        self.stranger_setup_wizard._prompt.assert_called_once_with()
        self.sender.send_notification.assert_called_once_with("Please specify at least one language.")
 async def test_handle__languages_ok(self):
     from randtalkbot.stranger_setup_wizard import get_languages_codes
     self.stranger.wizard = 'setup'
     self.stranger.wizard_step = 'languages'
     get_languages_codes.return_value = 'foo_languages_codes'
     self.stranger_setup_wizard._prompt = CoroutineMock()
     message = Mock()
     message.text = 'foo_text'
     self.assertTrue((await self.stranger_setup_wizard.handle(message)))
     get_languages_codes.assert_called_once_with('foo_text')
     self.stranger.set_languages.assert_called_once_with(
         'foo_languages_codes')
     self.stranger_setup_wizard._prompt.assert_called_once_with()
     self.assertEqual(self.stranger.wizard_step, 'sex')
     self.stranger.save.assert_called_once_with()
     self.sender.update_translation.assert_called_once_with()
    async def test_handle__languages_ok(self):
        from randtalkbot.stranger_setup_wizard import get_languages_codes

        self.stranger.wizard = "setup"
        self.stranger.wizard_step = "languages"
        get_languages_codes.return_value = "foo_languages_codes"
        self.stranger_setup_wizard._prompt = CoroutineMock()
        message = Mock()
        message.text = "foo_text"
        self.assertTrue((await self.stranger_setup_wizard.handle(message)))
        get_languages_codes.assert_called_once_with("foo_text")
        self.stranger.set_languages.assert_called_once_with("foo_languages_codes")
        self.stranger_setup_wizard._prompt.assert_called_once_with()
        self.assertEqual(self.stranger.wizard_step, "sex")
        self.stranger.save.assert_called_once_with()
        self.sender.update_translation.assert_called_once_with()
 async def test_handle__languages_language_not_found(self):
     from randtalkbot.stranger_setup_wizard import get_languages_codes
     self.stranger.wizard = 'setup'
     self.stranger.wizard_step = 'languages'
     get_languages_codes.side_effect = LanguageNotFoundError('foo_lang')
     self.stranger_setup_wizard._prompt = CoroutineMock()
     message = Mock()
     message.text = 'foo_text'
     self.assertTrue((await self.stranger_setup_wizard.handle(message)))
     get_languages_codes.assert_called_once_with('foo_text')
     self.stranger.set_languages.assert_not_called()
     self.stranger_setup_wizard._prompt.assert_called_once_with()
     self.sender.send_notification.assert_called_once_with(
         'Language "{0}" wasn\'t found.',
         'foo_lang',
     )