def index(_resp, ret_path="/"): user = users.get_current_user() if user: cmd = facade.login_google(user, _resp).execute() if cmd.pending_link: pending_path = router.to_path(pending.index, cmd.pending_link.key.id()) facade.send_passwordless_login_link(user.email(), settings.APP_URL + pending_path).execute() return TemplateResponse({"provider": "Google", "email": user.email()}, "login/pending.html") return RedirectResponse(ret_path)
def test_google_user_logged_for_the_first_time(self): google_account_user = Mock() google_account_user.user_id = lambda: '123' google_account_user.email = lambda: '*****@*****.**' google_account_user.nickname = lambda: 'foo' user = facade.login_google(google_account_user, Mock()).execute().result self.assertEqual('*****@*****.**', user.email) self.assertEqual('foo', user.name) self.assertEqual(MainUser.query().get(), user) google_user = OriginsSearch(ExternalToMainUser, user).execute().result[0] self.assertEqual('123', google_user.google_id)
def index(_handler, _resp, _write_tmpl, ret_path="/"): usuario_google = users.get_current_user() if usuario_google: cmd = facade.login_google(usuario_google, _resp).execute() if cmd.pending_link: pendente_path = router.to_path(pendente.index, cmd.pending_link.key.id()) facade.send_passwordless_login_link( usuario_google.email(), "https://livrogae.appspot.com" + pendente_path, "pt_BR" ).execute() _write_tmpl("login/pendente.html", {"provedor": "Google", "email": usuario_google.email()}) return _handler.redirect(ret_path)
def index(_resp, ret_path='/'): user = users.get_current_user() if user: cmd = facade.login_google(user, _resp).execute() if cmd.pending_link: pending_path = router.to_path(pending.index, cmd.pending_link.key.id()) facade.send_passwordless_login_link(user.email(), settings.APP_URL + pending_path).execute() TemplateResponse({'provider': 'Google', 'email': user.email()}, 'login/pending.html') else: main_user=cmd.main_user_from_external user_document=get_or_create_user_document(main_user) return RedirectResponse(ret_path)
def test_google_user_logged_for_the_second_time(self): google_account_user = Mock() google_account_user.user_id = lambda: '123' g_key = GoogleUser(google_id='123').put() main_user = MainUser(name='foo', email='*****@*****.**') main_user.put() ExternalToMainUser(origin=g_key, destination=main_user.key.id()).put() user = facade.login_google(google_account_user, Mock()).execute().result self.assertEqual('*****@*****.**', user.email) self.assertEqual('foo', user.name) self.assertEqual(main_user, user) self.assertEqual(1, len(GoogleUser.query().fetch())) self.assertEqual(1, len(MainUser.query().fetch()))
def test_google_user_logged_for_the_first_time_with_no_conflict(self, log_main_user_in): google_account_user = self.mock_google_account_user() response = Mock() cmd = facade.login_google(google_account_user, response).execute() self.assertTrue(cmd.result) user = cmd.main_user_from_external self.assertEqual('*****@*****.**', user.email) self.assertEqual('foo', user.name) self.assertEqual(MainUser.query().get(), user) google_user = ExternalUserSearch(user).execute().result[0] self.assertEqual('123', google_user.external_id) log_main_user_in.assert_called_once_with(user, response, 'userck') self.assertIsNone(cmd.pending_link)
def test_google_user_logged_for_the_first_time_with_conflict(self, log_main_user_in): google_account_user = self.mock_google_account_user() main_user = mommy.save_one(MainUser, email='*****@*****.**') cmd = facade.login_google(google_account_user, Mock()).execute() self.assertFalse(cmd.result) self.assertIsNone(cmd.main_user_from_external) self.assertEqual(1, len(GoogleUser.query().fetch())) self.assertEqual(1, len(MainUser.query().fetch())) self.assertIsNotNone(cmd.pending_link) self.assertEqual(PendingExternalToMainUser.query().get(), cmd.pending_link) self.assertEqual(cmd.external_user.key, cmd.pending_link.external_user) self.assertEqual(main_user.key, cmd.pending_link.main_user) self.assertEqual('123', cmd.external_user.external_id) self.assertFalse(log_main_user_in.called)
def test_google_user_logged_for_the_second_time(self, log_main_user_in): google_account_user = self.mock_google_account_user() g_key = GoogleUser(external_id='123').put() main_user = MainUser(name='foo', email='*****@*****.**') main_user.put() ExternalToMainUser(origin=g_key, destination=main_user.key.id()).put() response = Mock() cmd = facade.login_google(google_account_user, response).execute() self.assertTrue(cmd.result) user = cmd.main_user_from_external self.assertEqual('*****@*****.**', user.email) self.assertEqual('foo', user.name) self.assertEqual(main_user, user) self.assertEqual(1, len(GoogleUser.query().fetch())) self.assertEqual(1, len(MainUser.query().fetch())) self.assertIsNone(cmd.pending_link) log_main_user_in.assert_called_once_with(user, response, 'userck')
def test_no_google_user_logged(self): user = facade.login_google(None, Mock()).execute().result self.assertIsNone(user)