def create_image_server(self): configure_logging() # 1. make sure to initialize the persistence module self._engine = create_engine(self._config.dburi, encoding='utf-8', echo=False, echo_pool=False) # strategy='threadlocal' self._sessionmaker = scoped_session( sessionmaker(bind=self._engine, autoflush=True, autocommit=False)) persistence.init(sessionmaker=self._sessionmaker) # 2. We should then be able to use the persistence module from pymager.persistence.impl.sqlalchemyschemamigrator import SqlAlchemySchemaMigrator from pymager.persistence.impl.sqlalchemyimagemetadatarepository import SqlAlchemyImageMetadataRepository self._image_format_mapper = resources.ImageFormatMapper( PilImageFormatMapper()) self._path_generator = resources.PathGenerator( NestedPathGenerator(self._image_format_mapper, self._config.data_directory)) self._session_template = persistence.SessionTemplate( self._sessionmaker) self._schema_migrator = persistence.SchemaMigrator( SqlAlchemySchemaMigrator(self._engine, self._session_template)) self._image_metadata_repository = domain.ImageMetadataRepository( SqlAlchemyImageMetadataRepository(self._session_template)) self._image_processor = imgengine.ImageRequestProcessor( DefaultImageRequestProcessor( self._image_metadata_repository, self._path_generator, self._image_format_mapper, self._schema_migrator, self._config.data_directory, self._session_template, self._config.dev_mode)) self._image_processor.prepare_transformation = image_transformation_security_decorator.image_transformation_security_decorator( self._config.allowed_sizes)( self._image_processor.prepare_transformation) return self._image_processor
def setUp(self): self._image_format_mapper = PilImageFormatMapper()