示例#1
0
    def init_app(self, app):
        """Flask application initialization."""
        self.init_config(app)
        self.create_resources()
        self.init_views(app)

        app.extensions['sonar'] = self

        if app.config['SONAR_APP_ENABLE_CORS']:
            from flask_cors import CORS
            CORS(app)

        Bootstrap(app)
        Wiki(app)

        app.context_processor(utility_processor)

        # Connect to signal sent when a user is created in Flask-Security.
        user_registered.connect(user_registered_handler, weak=False)

        # Connect to signal sent when a file is uploaded or deleted
        file_uploaded.connect(file_uploaded_listener, weak=False)
        file_deleted.connect(file_deleted_listener, weak=False)

        # Add user's full name before record index
        before_record_index.connect(add_full_name, weak=False)
示例#2
0
    def init_app(self, app):
        """Flask application initialization."""
        self.init_config(app)
        app.extensions['sonar_app'] = self

        if app.config['SONAR_APP_ENABLE_CORS']:
            from flask_cors import CORS
            CORS(app)

        Bootstrap(app)
        Wiki(app)

        # Register assets for sonar-ui
        assets = Environment(app)
        assets.register(
            'sonar_ui_js',
            Bundle('sonar-ui/runtime.js',
                   'sonar-ui/polyfills.js',
                   'sonar-ui/main.js',
                   output='sonar_ui.%(version)s.js'))

        app.context_processor(utility_processor)

        # Connect to signal sent when a user is created in Flask-Security.
        user_registered.connect(user_registered_handler, weak=False)

        # Connect to signal sent when a file is uploaded or deleted
        file_uploaded.connect(file_uploaded_listener, weak=False)
        file_deleted.connect(file_deleted_listener, weak=False)
示例#3
0
 def register_signals(self):
     """Register signals."""
     file_uploaded.connect(file_uploaded_listener)
     file_processed.connect(file_processed_listener)
     file_deleted.connect(file_deleted_listener)
     after_record_delete.connect(record_deleted_listener)
     before_record_index.connect(index_file_content)
def test_signals(app, client, headers, bucket, permissions):
    """Test file_uploaded and file_deleted signals."""
    login_user(client, permissions['bucket'])
    key = 'myfile.txt'
    data = b'content of my file'
    object_url = url_for('invenio_files_rest.object_api',
                         bucket_id=bucket.id,
                         key=key)

    calls = []

    def upload_listener(obj):
        calls.append("file-uploaded")

    def delete_listener(obj):
        calls.append("file-deleted")

    file_uploaded.connect(upload_listener, weak=False)
    file_deleted.connect(delete_listener, weak=False)
    try:
        client.put(object_url,
                   input_stream=BytesIO(data),
                   headers={'Content-Type': 'application/octet-stream'})
        client.delete(object_url)
        assert calls == ["file-uploaded", "file-deleted"]
    finally:
        file_uploaded.disconnect(upload_listener)
        file_deleted.disconnect(delete_listener)
示例#5
0
    def _register_signals(self, app):
        """Register signals."""
        before_record_index.dynamic_connect(indexer.indexer_receiver,
                                            sender=app,
                                            index="records-record-v1.0.0")

        file_deleted.connect(update_record_files_async, weak=False)
        file_uploaded.connect(update_record_files_async, weak=False)
示例#6
0
    def _register_signals(self, app):
        """Register signals."""
        before_record_index.dynamic_connect(before_record_index_hook,
                                            sender=app,
                                            weak=False,
                                            index='records-record-v1.0.0')

        file_deleted.connect(update_record_files_async, weak=False)
        file_uploaded.connect(update_record_files_async, weak=False)
示例#7
0
def register_files_signals():
    """Register files signal."""
    file_deleted.connect(on_file_changed, weak=False)
    file_uploaded.connect(on_file_changed, weak=False)