def set_account_password(self, old_email, new_email, password, callback): def on_password_store_finish(source, result, data): try: success = Secret.password_store_finish(result) except GLib.Error as e: logging.error('Failed to store password, Error: {}'.format(e)) success = False if callback: callback(success) def on_password_clear_finish(source, result, data): try: password_removed = Secret.password_clear_finish(result) if password_removed: logging.debug('Cleared password for: {}'.format(old_email)) else: logging.debug( 'No password found to clear for: {}'.format(old_email)) except GLib.Error as e: logging.error( 'Failed to clear password for: {}, Error: {}'.format( old_email, e)) if callback: callback(False) else: Secret.password_store( self._account_schema, {'email': new_email}, self._current_collection, 'Pandora Account', password, None, on_password_store_finish, None, ) if old_email and old_email != new_email: Secret.password_clear( self._account_schema, {'email': old_email}, None, on_password_clear_finish, None, ) else: Secret.password_store( self._account_schema, {'email': new_email}, self._current_collection, 'Pandora Account', password, None, on_password_store_finish, None, )
def set_account_password(self, old_email: str, new_email: str, password: str) -> Awaitable[bool]: future = asyncio.Future() # type: asyncio.Future def on_password_store_finish(source, result, data): try: success = Secret.password_store_finish(result) except GLib.Error as e: future.set_exception(e) future.set_result(success) def on_password_clear_finish(source, result, data): try: password_removed = Secret.password_clear_finish(result) if password_removed: logging.debug('Cleared password for: {}'.format(old_email)) else: logging.debug( 'No password found to clear for: {}'.format(old_email)) except GLib.Error as e: future.set_exception(e) else: Secret.password_store( self._account_schema, {'email': new_email}, self._current_collection, 'Pandora Account', password, None, on_password_store_finish, None, ) if old_email and old_email != new_email: Secret.password_clear( self._account_schema, {'email': old_email}, None, on_password_clear_finish, None, ) else: Secret.password_store( self._account_schema, {'email': new_email}, self._current_collection, 'Pandora Account', password, None, on_password_store_finish, None, ) return future
def testAsyncNotFound(self): loop = GLib.MainLoop(None, False) def on_result_ready(source, result, unused): loop.quit() deleted = Secret.password_clear_finish(result) self.assertEquals(False, deleted) Secret.password_clear(STORE_SCHEMA, { "number": "7", "string": "five" }, None, on_result_ready, None) loop.run()
def testAsynchronous(self): loop = GLib.MainLoop(None) def on_result_ready(source, result, unused): loop.quit() deleted = Secret.password_clear_finish(result) self.assertEquals(True, deleted) Secret.password_clear(STORE_SCHEMA, { "number": "2", "string": "two" }, None, on_result_ready, None) loop.run()
def set_account_password(self, old_email, new_email, password, callback): def on_password_store_finish(source, result, data): try: success = Secret.password_store_finish(result) except GLib.Error as e: logging.error('Failed to store password, Error: {}'.format(e)) success = False if callback: callback(success) def on_password_clear_finish(source, result, data): try: password_removed = Secret.password_clear_finish(result) if password_removed: logging.debug('Cleared password for: {}'.format(old_email)) else: logging.debug('No password found to clear for: {}'.format(old_email)) except GLib.Error as e: logging.error('Failed to clear password for: {}, Error: {}'.format(old_email, e)) if callback: callback(False) else: Secret.password_store( self._account_schema, {'email': new_email}, self._current_collection, 'Pandora Account', password, None, on_password_store_finish, None, ) if old_email and old_email != new_email: Secret.password_clear( self._account_schema, {'email': old_email}, None, on_password_clear_finish, None, ) else: Secret.password_store( self._account_schema, {'email': new_email}, self._current_collection, 'Pandora Account', password, None, on_password_store_finish, None, )
def testAsyncNotFound(self): loop = GLib.MainLoop(None) def on_result_ready(source, result, unused): loop.quit() deleted = Secret.password_clear_finish(result) self.assertEquals(False, deleted) Secret.password_clear(STORE_SCHEMA, { "number": "7", "string": "five" }, None, on_result_ready, None) loop.run()
def clearUser(self): Secret.password_clear(self.SCHEMA, self.KEY, None, None)
def reset_refresh_token(self): Secret.password_clear(self.SECRET_SCHEMA, {}, None, None, None)