Example #1
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'))
Example #2
0
    def test_get_and_put_simple(self):
        storage = StorageByKeyName(CredentialsModel, 'foo', 'credentials')

        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)
Example #3
0
    def test_get_and_put_simple(self):
        storage = StorageByKeyName(
            CredentialsModel, 'foo', 'credentials')

        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)
Example #4
0
    def test_get_and_put_mixed_ndb_storage_db_get(self):
        # Start empty
        storage = StorageByKeyName(CredentialsNDBModel, 'foo', 'credentials')
        self.assertEqual(None, storage.get())

        # Set NDB store and refresh to add to storage
        self.credentials.set_store(storage)
        self.credentials._refresh(_http_request)

        # Retrieve same key from DB model to confirm mixing works
        credmodel = CredentialsModel.get_by_key_name('foo')
        self.assertEqual('bar', credmodel.credentials.access_token)
        self.assertEqual(self.credentials.to_json(),
                         credmodel.credentials.to_json())
Example #5
0
    def test_get_and_put_mixed_ndb_storage_db_get(self):
        # Start empty
        storage = StorageByKeyName(
            CredentialsNDBModel, 'foo', 'credentials')
        self.assertEqual(None, storage.get())

        # Set NDB store and refresh to add to storage
        self.credentials.set_store(storage)
        self.credentials._refresh(_http_request)

        # Retrieve same key from DB model to confirm mixing works
        credmodel = CredentialsModel.get_by_key_name('foo')
        self.assertEqual('bar', credmodel.credentials.access_token)
        self.assertEqual(self.credentials.to_json(),
                         credmodel.credentials.to_json())
    def create(self, recipient_account):

        """
        Crea un buzón receptor
        :param recipient_account: Diccionario que representa el buzón receptor.
        :return: El buzón receptor creado.
        """

        from oauth2client.contrib.appengine import CredentialsModel

        # Comprobamos que los campos obligatorios están incluidos.
        if "email" not in recipient_account or not recipient_account["email"]:
            raise Exception("The account must have an email.")
        # Creamos la entidad.
        entity = RecipientAccountDao(**recipient_account)
        entity.created_by = self._user
        entity.updated_by = self._user
        # Comprobamos si el buzón ya ha autorizado el acceso de la aplicación.
        # En ese caso, lo establecemos como autorizado.
        entity.is_authorized = CredentialsModel.get_by_key_name(entity.email) is not None
        entity.put()
        return entity
Example #7
0
    def create(self, sender_account):

        """
        Crea un buzón emisor.
        :param sender_account: Diccionario que representa un buzón emisor.
        :return: El buzón emisor creado.
        """

        from oauth2client.contrib.appengine import CredentialsModel

        # Comprobamos que los campos obligatorios están incluidos.
        if "email" not in sender_account or not sender_account["email"]:
            raise Exception("The account must have an email.")

        # Volcamos el contenido de sender_account y actualizamos usuario creador.
        entity = SenderAccountDao(**sender_account)
        entity.created_by = self._user
        entity.updated_by = self._user
        # Comprobamos si el buzón ya ha autorizado el acceso de la aplicación.
        # En ese caso, lo establecemos como autorizado.
        entity.is_authorized = CredentialsModel.get_by_key_name(entity.email) is not None
        entity.put()
        return entity
Example #8
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'))