def test_expire_disabled_should_not_tell_when_expired(self):
     topic = Storage(
         Context(config=Config(RESULT_STORAGE_EXPIRATION_SECONDS=0)))
     key = {
         'LastModified': (datetime.now(tzutc()) - timedelta(seconds=3601)),
         'Body': 'foobar',
     }
     self.assertFalse(topic.is_expired(key))
Esempio n. 2
0
        def topic(self):
            self.conn = S3Connection()
            self.conn.create_bucket(s3_bucket)

            config = Config(RESULT_STORAGE_BUCKET=s3_bucket, RESULT_STORAGE_AWS_STORAGE_ROOT_PATH='tata')
            ctx = Context(config=config, server=get_server('ACME-SEC'))

            storage = Storage(ctx)

            return storage.normalize_path('toto')
        def topic(self):
            self.conn = S3Connection()
            self.conn.create_bucket(s3_bucket)

            config = Config(TC_AWS_RESULT_STORAGE_BUCKET=s3_bucket, TC_AWS_RESULT_STORAGE_ROOT_PATH='tata')
            ctx = Context(config=config, server=get_server('ACME-SEC'))

            storage = Storage(ctx)

            return storage._normalize_path('toto')
    def test_should_check_invalid_key(self):
        config = Config(TC_AWS_RESULT_STORAGE_BUCKET=s3_bucket,
                        TC_AWS_RESULT_STORAGE_ROOT_PATH='tata')
        ctx = Context(config=config, server=get_server('ACME-SEC'))

        storage = Storage(ctx)

        topic = storage._normalize_path('toto')

        self.assertEqual(topic, "tata/toto")
        def topic(self, callback):
            self.conn = S3Connection()
            self.conn.create_bucket(s3_bucket)

            config = Config(TC_AWS_RESULT_STORAGE_BUCKET=s3_bucket)
            ctx = Context(config=config, server=get_server('ACME-SEC'))
            ctx.request = Request
            ctx.request.url = 'my-image.jpg'

            storage = Storage(ctx)

            storage.put(IMAGE_BYTES, callback=callback)
    def test_can_get_image(self):
        config = Config(TC_AWS_RESULT_STORAGE_BUCKET=s3_bucket)
        ctx = Context(config=config, server=get_server('ACME-SEC'))
        ctx.request = Request
        ctx.request.url = 'my-image-2.jpg'

        storage = Storage(ctx)
        yield storage.put(IMAGE_BYTES)

        topic = yield storage.get()

        self.assertEqual(topic.buffer, IMAGE_BYTES)
Esempio n. 7
0
        def topic(self):
            self.conn = S3Connection()
            self.conn.create_bucket(s3_bucket)

            config = Config(RESULT_STORAGE_BUCKET=s3_bucket)
            ctx = Context(config=config, server=get_server('ACME-SEC'))
            ctx.request = Request
            ctx.request.url = 'my-image.jpg'

            storage = Storage(ctx)
            path = storage.put(IMAGE_BYTES)

            return path
Esempio n. 8
0
        def topic(self):
            self.conn = S3Connection()
            self.conn.create_bucket(s3_bucket)

            config = Config(RESULT_STORAGE_BUCKET=s3_bucket)
            ctx = Context(config=config, server=get_server('ACME-SEC'))
            ctx.request = Request
            ctx.request.url = 'my-image.jpg'

            storage = Storage(ctx)
            path = storage.put(IMAGE_BYTES)

            return path
    def test_can_store_image(self):
        config = Config(TC_AWS_RESULT_STORAGE_BUCKET=s3_bucket)
        ctx = Context(config=config, server=get_server('ACME-SEC'))
        ctx.request = Request
        ctx.request.url = 'foo/my-image.jpg'

        storage = Storage(ctx)

        yield storage.put(IMAGE_BYTES)

        client = botocore.session.get_session().create_client('s3')
        response = client.get_object(Bucket=s3_bucket, Key="foo/my-image.jpg")

        self.assertEqual(response['Body'].read(), IMAGE_BYTES)
        def topic(self, callback):
            self.conn = S3Connection()
            self.conn.create_bucket(s3_bucket)

            config = Config(TC_AWS_RESULT_STORAGE_BUCKET=s3_bucket, TC_AWS_STORE_METADATA=True)
            ctx = Context(config=config, server=get_server('ACME-SEC'))
            ctx.headers = {'Content-Type': 'image/webp', 'Some-Other-Header': 'doge-header'}
            ctx.request = Request
            ctx.request.url = 'my-image-meta.jpg'

            storage = Storage(ctx)
            storage.put(IMAGE_BYTES)

            file_abspath = storage._normalize_path(ctx.request.url)
            storage.storage.get(file_abspath, callback=callback)
Esempio n. 11
0
        def topic(self):
            self.conn = S3Connection()
            self.conn.create_bucket(s3_bucket)

            config = Config(RESULT_STORAGE_BUCKET=s3_bucket, RESULT_STORAGE_S3_STORE_METADATA=True)
            ctx = Context(config=config, server=get_server('ACME-SEC'))
            ctx.request_handler = RequestHandler()
            ctx.request = Request
            ctx.request.url = 'my-image-meta.jpg'

            storage = Storage(ctx)
            storage.put(IMAGE_BYTES)

            file_abspath = storage.normalize_path(ctx.request.url)
            file_key = storage.storage.get_key(file_abspath)
            return file_key.content_type, file_key.metadata, file_key.read()
Esempio n. 12
0
        def topic(self):
            self.conn = S3Connection()
            self.conn.create_bucket(s3_bucket)

            config = Config(RESULT_STORAGE_BUCKET=s3_bucket,
                            RESULT_STORAGE_S3_STORE_METADATA=True)
            ctx = Context(config=config, server=get_server('ACME-SEC'))
            ctx.headers = {
                'Content-Type': 'image/webp',
                'Some-Other-Header': 'doge-header'
            }
            ctx.request = Request
            ctx.request.url = 'my-image-meta.jpg'

            storage = Storage(ctx)
            storage.put(IMAGE_BYTES)

            file_abspath = storage.normalize_path(ctx.request.url)
            file_key = storage.storage.get_key(file_abspath)
            return file_key.content_type, file_key.metadata, file_key.read()
Esempio n. 13
0
    def test_can_store_image_randomly(self):
        config = Config(TC_AWS_RESULT_STORAGE_BUCKET=s3_bucket,
                        TC_AWS_RANDOMIZE_KEYS=True)
        ctx = Context(config=config, server=get_server('ACME-SEC'))
        ctx.request = Request
        ctx.request.url = 'foo/my-image.jpg'

        storage = Storage(ctx)

        yield storage.put(IMAGE_BYTES)

        expected_path = '/'.join([
            sha1("foo/my-image.jpg".encode('utf-8')).hexdigest(),
            'foo/my-image.jpg'
        ])

        client = botocore.session.get_session().create_client('s3')
        response = client.get_object(Bucket=s3_bucket, Key=expected_path)

        self.assertEqual(response['Body'].read(), IMAGE_BYTES)
Esempio n. 14
0
    def test_can_get_image_with_metadata(self):
        config = Config(TC_AWS_RESULT_STORAGE_BUCKET=s3_bucket,
                        TC_AWS_STORE_METADATA=True)
        ctx = Context(config=config, server=get_server('ACME-SEC'))
        ctx.headers = {
            'Content-Type': 'image/webp',
            'Some-Other-Header': 'doge-header'
        }
        ctx.request = Request
        ctx.request.url = 'my-image-meta.jpg'

        storage = Storage(ctx)
        yield storage.put(IMAGE_BYTES)

        file_abspath = storage._normalize_path(ctx.request.url)
        topic = yield storage.get(file_abspath)

        self.assertIn('Some-Other-Header', topic.metadata['Metadata'])
        self.assertEqual(topic.metadata['Metadata']['Content-Type'],
                         'image/webp')
        self.assertEqual(topic.buffer, IMAGE_BYTES)
Esempio n. 15
0
 def topic(self):
     return Storage(
         Context(config=Config(
             RESULT_STORAGE_EXPIRATION_SECONDS=0)))
Esempio n. 16
0
 def expired_enabled(self):
     return Storage(
         Context(config=Config(RESULT_STORAGE_EXPIRATION_SECONDS=3600)))