Ejemplo n.º 1
0
  def test_delete_db_ndb_mixed(self):
    # Start empty
    storage_ndb = StorageByKeyName(
      CredentialsNDBModel, 'foo', 'credentials')
    storage = StorageByKeyName(
      CredentialsModel, 'foo', 'credentials')

    # First DB, then NDB
    self.assertEqual(None, storage.get())
    storage.put(self.credentials)
    self.assertNotEqual(None, storage.get())

    storage_ndb.delete()
    self.assertEqual(None, storage.get())

    # First NDB, then DB
    self.assertEqual(None, storage_ndb.get())
    storage_ndb.put(self.credentials)

    storage.delete()
    self.assertNotEqual(None, storage_ndb.get())
    # NDB uses memcache and an instance cache (Context)
    ndb.get_context().clear_cache()
    memcache.flush_all()
    self.assertEqual(None, storage_ndb.get())
Ejemplo n.º 2
0
  def test_delete_db_ndb_mixed(self):
    # Start empty
    storage_ndb = StorageByKeyName(
      CredentialsNDBModel, 'foo', 'credentials')
    storage = StorageByKeyName(
      CredentialsModel, 'foo', 'credentials')

    # First DB, then NDB
    self.assertEqual(None, storage.get())
    storage.put(self.credentials)
    self.assertNotEqual(None, storage.get())

    storage_ndb.delete()
    self.assertEqual(None, storage.get())

    # First NDB, then DB
    self.assertEqual(None, storage_ndb.get())
    storage_ndb.put(self.credentials)

    storage.delete()
    self.assertNotEqual(None, storage_ndb.get())
    # NDB uses memcache and an instance cache (Context)
    ndb.get_context().clear_cache()
    memcache.flush_all()
    self.assertEqual(None, storage_ndb.get())
Ejemplo n.º 3
0
    def test_get_and_put_cached(self):
        storage = StorageByKeyName(CredentialsModel,
                                   'foo',
                                   'credentials',
                                   cache=memcache)

        self.assertEqual(None, storage.get())
        self.credentials.set_store(storage)

        self.credentials._refresh(_http_request)
        credmodel = CredentialsModel.get_by_key_name('foo')
        self.assertEqual('bar', credmodel.credentials.access_token)

        # Now remove the item from the cache.
        memcache.delete('foo')

        # Check that getting refreshes the cache.
        credentials = storage.get()
        self.assertEqual('bar', credentials.access_token)
        self.assertNotEqual(None, memcache.get('foo'))

        # Deleting should clear the cache.
        storage.delete()
        credentials = storage.get()
        self.assertEqual(None, credentials)
        self.assertEqual(None, memcache.get('foo'))
Ejemplo n.º 4
0
    def test_delete_ndb(self):
        # Start empty
        storage = StorageByKeyName(CredentialsNDBModel, "foo", "credentials")
        self.assertEqual(None, storage.get())

        # Add credentials to model with storage, and check equivalent w/o storage
        storage.put(self.credentials)
        credmodel = CredentialsNDBModel.get_by_id("foo")
        self.assertEqual(credmodel.credentials.to_json(), self.credentials.to_json())

        # Delete and make sure empty
        storage.delete()
        self.assertEqual(None, storage.get())
Ejemplo n.º 5
0
    def test_delete_ndb(self):
        # Start empty
        storage = StorageByKeyName(CredentialsNDBModel, 'foo', 'credentials')
        self.assertEqual(None, storage.get())

        # Add credentials to model with storage, and check equivalent w/o storage
        storage.put(self.credentials)
        credmodel = CredentialsNDBModel.get_by_id('foo')
        self.assertEqual(credmodel.credentials.to_json(),
                         self.credentials.to_json())

        # Delete and make sure empty
        storage.delete()
        self.assertEqual(None, storage.get())
Ejemplo n.º 6
0
def _refresh_oauth2_token(credentials, userid):
    """
    This updates the token via the OAuth2Credentials code and
    modifies the httplib2.Http.request stuff.  We store the updated
    credentials for later.
    """
    from oauth2client.client import AccessTokenRefreshError

    http = httplib2.Http()
    http = credentials.authorize(http)
    storage = StorageByKeyName(CredentialsNDBModel, userid, "credentials")
    try:
        credentials.refresh(http)
    except AccessTokenRefreshError:
        logging.info("AccessTokenRefreshError: lets delete the creds.")
        storage.delete()
        return
    storage.put(credentials)
    return credentials
Ejemplo n.º 7
0
    def test_get_and_put_cached(self):
        storage = StorageByKeyName(CredentialsModel, "foo", "credentials", cache=memcache)

        self.assertEqual(None, storage.get())
        self.credentials.set_store(storage)

        self.credentials._refresh(_http_request)
        credmodel = CredentialsModel.get_by_key_name("foo")
        self.assertEqual("bar", credmodel.credentials.access_token)

        # Now remove the item from the cache.
        memcache.delete("foo")

        # Check that getting refreshes the cache.
        credentials = storage.get()
        self.assertEqual("bar", credentials.access_token)
        self.assertNotEqual(None, memcache.get("foo"))

        # Deleting should clear the cache.
        storage.delete()
        credentials = storage.get()
        self.assertEqual(None, credentials)
        self.assertEqual(None, memcache.get("foo"))
Ejemplo n.º 8
0
def _delete_access_token():
    """Delete access token from storage"""

    storage = StorageByKeyName(CredentialsModel, 'token', 'credentials')
    storage.delete()
Ejemplo n.º 9
0
 def delete_user(cls, user_id):
     storage = StorageByKeyName(CredentialsModel, user_id, "credentials")
     storage.delete()
     user = cls.get_user_from_id(user_id)
     logging.debug("Deleting user: %s", user.google_display_email)
     user.key.delete()