Example #1
0
    def test_rrs_put(self):
        with mockup_s3_server(TEST_BUCKET) as (server, uri):
            StoreManager.register(
                's3',
                functools.partial(create_s3_store, base_url=uri),
                default=True
            )

            class Thumbnail(BaseThumbnail):
                __reproducible__ = True

            class Image(BaseImage):
                __thumbnail_type__ = Thumbnail

            class Person(self.Base):
                __tablename__ = 'person'
                id = Column(Integer, primary_key=True)
                image = Column(Image.as_mutable(Json))

            session = self.create_all_and_get_session()

            person1 = Person()
            self.assertIsNone(person1.image)

            with StoreManager(session):
                person1 = Person()
                person1.image = Image.create_from(self.dog_jpeg)
                self.assertIsInstance(person1.image, Image)

                thumbnail = person1.image.get_thumbnail(
                    width=100,
                    auto_generate=True
                )
                self.assertIsInstance(thumbnail, Thumbnail)
                self.assertTrue(thumbnail.reproducible, True)
Example #2
0
    def test_cdn_url_with_prefix(self):
        prefix = 'media'
        cdn_url = 'http//test.sqlalchemy-media.com'
        with mockup_s3_server(TEST_BUCKET) as (server, uri):
            StoreManager.register(
                's3',
                functools.partial(
                    create_s3_store,
                    prefix=prefix,
                    base_url=uri,
                    cdn_url=cdn_url
                ),
                default=True
            )

            class Person(self.Base):
                __tablename__ = 'person'
                id = Column(Integer, primary_key=True)
                file = Column(File.as_mutable(Json))

            session = self.create_all_and_get_session()

            person1 = Person()
            self.assertIsNone(person1.file)
            sample_content = b'Simple text.'

            with StoreManager(session):
                person1 = Person()
                person1.file = File.create_from(io.BytesIO(sample_content),
                                                content_type='text/plain',
                                                extension='.txt')
                self.assertIsInstance(person1.file, File)
                self.assertEqual(person1.file.locate(), '%s/%s/%s?_ts=%s' % (
                    cdn_url, prefix, person1.file.path, person1.file.timestamp)
                )
Example #3
0
    def test_public_base_url_strip(self):
        with mockup_s3_server(TEST_BUCKET) as (server, uri):
            base_url = '%s/' % uri
            StoreManager.register(
                's3',
                functools.partial(create_s3_store, base_url=base_url),
                default=True
            )

            class Person(self.Base):
                __tablename__ = 'person'
                id = Column(Integer, primary_key=True)
                file = Column(File.as_mutable(Json))

            session = self.create_all_and_get_session()

            person1 = Person()
            self.assertIsNone(person1.file)
            sample_content = b'Simple text.'

            with StoreManager(session):
                person1 = Person()
                person1.file = File.create_from(io.BytesIO(sample_content),
                                                content_type='text/plain',
                                                extension='.txt')
                self.assertIsInstance(person1.file, File)
                self.assertEqual(person1.file.locate(), '%s%s?_ts=%s' % (
                    base_url, person1.file.path, person1.file.timestamp))
Example #4
0
    def test_public_base_url_strip(self):
        public_base_url = 'http://test.sqlalchemy.media/'
        StoreManager.register(
            's3',
            lambda: _get_s3_store(public_base_url=public_base_url),
            default=True)

        class Person(self.Base):
            __tablename__ = 'person'
            id = Column(Integer, primary_key=True)
            file = Column(File.as_mutable(Json))

        session = self.create_all_and_get_session()

        person1 = Person()
        self.assertIsNone(person1.file)
        sample_content = b'Simple text.'

        with StoreManager(session):
            person1 = Person()
            person1.file = File.create_from(io.BytesIO(sample_content),
                                            content_type='text/plain',
                                            extension='.txt')
            self.assertIsInstance(person1.file, File)
            self.assertEqual(
                person1.file.locate(),
                '%s/%s?_ts=%s' % (public_base_url.rstrip('/'),
                                  person1.file.path, person1.file.timestamp))
Example #5
0
    def test_prefix(self):
        prefix = 'test'
        StoreManager.register('s3',
                              lambda: _get_s3_store(prefix=prefix),
                              default=True)

        class Person(self.Base):
            __tablename__ = 'person'
            id = Column(Integer, primary_key=True)
            file = Column(File.as_mutable(Json))

        session = self.create_all_and_get_session()

        person1 = Person()
        self.assertIsNone(person1.file)
        sample_content = b'Simple text.'

        with StoreManager(session):
            person1 = Person()
            person1.file = File.create_from(io.BytesIO(sample_content),
                                            content_type='text/plain',
                                            extension='.txt')
            self.assertIsInstance(person1.file, File)
            self.assertEqual(
                person1.file.locate(), '%s/%s/%s?_ts=%s' %
                (TEST_SERVER_URL, prefix, person1.file.path,
                 person1.file.timestamp))
 def setUp(self):
     StoreManager.register('dummy', DummyStore, default=True)