Example #1
0
def login(_resp, **kwargs):
    errors = _check_params(('app_id', 'token', 'hook'), ('user_id', 'email', 'lang'), kwargs.keys())
    if not errors:
        cmd = facade.setup_login_task(**kwargs)
        try:
            ticket = cmd()
            return JsonUnsecureResponse(ticket.key.id())
        except CommandExecutionException:
            errors = cmd.errors

    _resp.status_code = 400
    logging.error(errors)
    return JsonUnsecureResponse(errors)
Example #2
0
    def test_success(self):
        site = mommy.make_one(Site, domain='appspot.com')
        user = mommy.make_one(MainUser)
        ndb.put_multi([site, user])
        login.setup_locale = Mock()
        setup_task = facade.setup_login_task(
            str(site.key.id()),
            site.token,
            'http://pswdless.appspot.com/return',
            str(user.key.id()),
            lang='pt_BR')
        task_obj = Mock()
        task_cls = Mock(return_value=task_obj)
        login.TaskQueueCommand = task_cls
        task_obj.commit = Mock(return_value=[])

        setup_task.execute()
        lg = Login.query().get()
        login.setup_locale.assert_called_once_with('pt_BR')
        self.assertIsNotNone(lg)
        task_cls.assert_called_once_with(settings.TASK_HERO,
                                         router.to_path(task.send_login_email),
                                         params={
                                             'login_id': str(lg.key.id()),
                                             'lang': 'pt_BR'
                                         },
                                         countdown=4)
        task_obj.set_up.assert_called_once_with()
        task_obj.do_business.assert_called_once_with()
        task_obj.commit.assert_called_once_with()

        def neighbor(cls):
            DestinationsSearch.arc_class = cls  # To do: removing this because can cause side effects
            search = DestinationsSearch(lg)
            search.execute()
            self.assertEqual(1, len(search.result), cls)
            return search.result[0]

        n_user = neighbor(LoginUser)
        self.assertEqual(n_user.key, user.key)

        n_site = neighbor(LoginSite)
        self.assertEqual(n_site.key, site.key)

        login_status = neighbor(LoginStatusArc)
        self.assertEqual(LOGIN_CALL, login_status.label)
Example #3
0
    def test_success(self):
        site = mommy.make_one(Site, domain='appspot.com')
        user = mommy.make_one(MainUser)
        ndb.put_multi([site, user])
        login.setup_locale = Mock()
        setup_task = facade.setup_login_task(str(site.key.id()), site.token, 'http://pswdless.appspot.com/return',
            str(user.key.id()), lang='pt_BR')
        task_obj = Mock()
        task_cls = Mock(return_value=task_obj)
        login.TaskQueueCommand = task_cls
        task_obj.commit = Mock(return_value=[])

        setup_task.execute()
        lg = Login.query().get()
        login.setup_locale.assert_called_once_with('pt_BR')
        self.assertIsNotNone(lg)
        task_cls.assert_called_once_with(settings.TASK_HERO, router.to_path(task.send_login_email),
                                         params={'login_id': str(lg.key.id()), 'lang': 'pt_BR'}, countdown=4)
        task_obj.set_up.assert_called_once_with()
        task_obj.do_business.assert_called_once_with()
        task_obj.commit.assert_called_once_with()

        def neighbor(cls):
            DestinationsSearch.arc_class = cls  # To do: removing this because can cause side effects
            search = DestinationsSearch(lg)
            search.execute()
            self.assertEqual(1, len(search.result), cls)
            return search.result[0]

        n_user = neighbor(LoginUser)
        self.assertEqual(n_user.key, user.key)

        n_site = neighbor(LoginSite)
        self.assertEqual(n_site.key, site.key)

        login_status = neighbor(LoginStatusArc)
        self.assertEqual(LOGIN_CALL, login_status.label)