示例#1
0
 def do_business(self):
     super(PasswordlessDetailCheck, self).do_business()
     if not self.errors:
         app = self.result
         self.result = None
         fetch_cmd = UrlFetchCommand(self.detail_url,
                                     {'ticket': self.ticket, 'app_id': app.app_id, 'token': app.token},
                                     'POST').execute()
         self.errors.update(fetch_cmd.errors)
         if not self.errors:
             dct = json.loads(fetch_cmd.result.content)
             cmd_parallel = CommandParallel(GetMainUserByEmail(dct['email']), GetPasswordlessUser(dct['id']))
             cmd_parallel.execute()
             main_user, passwordless_user = cmd_parallel[0].result, cmd_parallel[1].result
             if passwordless_user:
                 main_user = MainUserSearch(passwordless_user).execute().result
             elif main_user:
                 passwordless_user_key = PasswordlessUser(external_id=dct['id']).put()
                 self._to_commit = ExternalToMainUser(origin=passwordless_user_key, destination=main_user.key)
             else:
                 main_user = MainUser(name=dct['email'], email=dct['email'])
                 passwordless_user = PasswordlessUser(external_id=dct['id'])
                 ndb.put_multi([main_user, passwordless_user])
                 self._to_commit = ExternalToMainUser(origin=passwordless_user.key, destination=main_user.key)
             self.result = main_user
    def test_success_with_no_user(self, fetch_command_cls, write_cookie):
        app, fetch_cmd_obj, response = self.setup_base_mock(fetch_command_cls)
        main_user = facade.login_passwordless('0123', response,
                                              'https://pswdless.appspot.com/rest/detail').execute().result
        self.assertIsNotNone(main_user)

        self.assertEqual('*****@*****.**', main_user.email)
        self.assertEqual('*****@*****.**', main_user.name)
        self.assert_base_execution(app, fetch_cmd_obj, fetch_command_cls, main_user, PasswordlessUser.query().get(),
                                   write_cookie, response)
    def test_success_with_main_user(self, fetch_command_cls, write_cookie):
        app, fetch_cmd_obj, response = self.setup_base_mock(fetch_command_cls)

        main_user_on_db = mommy.save_one(MainUser, email="*****@*****.**")

        main_user = facade.login_passwordless('0123', response,
                                              'https://pswdless.appspot.com/rest/detail').execute().result

        self.assertEqual(main_user_on_db, main_user)

        p_user = PasswordlessUser.query().get()
        self.assertIsNotNone(p_user)
        self.assert_base_execution(app, fetch_cmd_obj, fetch_command_cls, main_user, p_user, write_cookie, response)
 def test_success(self, fetch_command_cls):
     app = _setup_app_data()
     fetch_cmd_obj = Mock()
     fetch_command_cls.return_value = fetch_cmd_obj
     facade.send_passwordless_login_link('*****@*****.**', 'http://www.yoursite/passworless/login', 'pt_BR').execute()
     main_user = GetMainUserByEmail('*****@*****.**').execute().result
     self.assertIsNone(main_user)
     self.assertIsNone(PasswordlessUser.query().get())
     fetch_command_cls.assert_called_once_with('https://pswdless.appspot.com/rest/login',
                                               {'email': '*****@*****.**',
                                                'app_id': app.app_id,
                                                'token': app.token,
                                                'hook': 'http://www.yoursite/passworless/login',
                                                'lang': 'pt_BR'},
                                               method='POST')
     fetch_cmd_obj.execute.assert_called_once_with()
    def test_success_with_passwordless_user(self, fetch_command_cls, write_cookie):
        app, fetch_cmd_obj, response = self.setup_base_mock(fetch_command_cls)

        main_user_on_db = mommy.save_one(MainUser, email="*****@*****.**")
        p_user_on_db = mommy.save_one(PasswordlessUser, external_id="654321")
        ExternalToMainUser(origin=p_user_on_db.key, destination=main_user_on_db.key).put()

        main_user = facade.login_passwordless('0123',
                                              response,
                                              'https://pswdless.appspot.com/rest/detail').execute().result

        self.assertEqual(main_user_on_db, main_user)

        p_user = PasswordlessUser.query().get()
        self.assertEqual(p_user_on_db, p_user)
        self.assert_base_execution(app, fetch_cmd_obj, fetch_command_cls, main_user, p_user, write_cookie, response)
示例#6
0
 def __init__(self, passwordless_id):
     super(GetPasswordlessUser, self).__init__(PasswordlessUser.query_by_external_id(passwordless_id), 1)
示例#7
0
 def __init__(self, passwordless_id):
     super(GetPasswordlessUser, self).__init__(PasswordlessUser.query_by_external_id(passwordless_id), 1)