コード例 #1
0
ファイル: event.py プロジェクト: bkolobara/indico
def import_(source_file, create_users, force, verbose, yes, category_id):
    """Imports an event exported from another Indico instance."""
    click.echo('Importing event...')
    event = import_event(source_file, category_id, create_users=create_users, verbose=verbose, force=force)
    if event is None:
        click.secho('Import failed.', fg='red')
        sys.exit(1)
    if not yes and not click.confirm(click.style('Import finished. Commit the changes?', fg='green'), default=True):
        db.session.rollback()
        sys.exit(1)
    db.session.commit()
    click.secho(event.external_url, fg='green', bold=True)
コード例 #2
0
def import_(source_file, create_users, force, verbose, yes, category_id):
    """Import an event exported from another Indico instance."""
    click.echo('Importing event...')
    event = import_event(source_file, category_id, create_users=create_users, verbose=verbose, force=force)
    if event is None:
        click.secho('Import failed.', fg='red')
        sys.exit(1)
    if not yes and not click.confirm(click.style('Import finished. Commit the changes?', fg='green'), default=True):
        db.session.rollback()
        sys.exit(1)
    db.session.commit()
    click.secho(event.external_url, fg='green', bold=True)
コード例 #3
0
ファイル: export_test.py プロジェクト: qroques/indico
def test_event_import(db, dummy_user):
    with open(os.path.join(os.path.dirname(__file__), 'export_test_2.yaml'),
              'r') as ref_file:
        data_yaml_content = ref_file.read().replace('{version}',
                                                    indico.__version__)

    data_yaml = BytesIO(data_yaml_content.encode('utf-8'))
    tar_buffer = BytesIO()

    # User should be matched by e-mail
    dummy_user.email = '*****@*****.**'
    db.session.flush()

    # create a tar file artificially, using the provided YAML
    with tarfile.open(mode='w', fileobj=tar_buffer) as tarf:
        tar_info = tarfile.TarInfo('data.yaml')
        tar_info.size = len(data_yaml_content)
        tarf.addfile(tar_info, data_yaml)
        tar_info = tarfile.TarInfo('00000000-0000-4000-8000-00000000001c')
        tar_info.size = 11
        tarf.addfile(tar_info, BytesIO(b'hello world'))

    tar_buffer.seek(0)
    e = import_event(tar_buffer, create_users=False)
    # Check that event metadata is fine
    assert e.title == 'dummy#0'
    assert e.creator == dummy_user
    assert e.created_dt == as_utc(datetime(2017, 8, 24, 15, 28, 42, 652626))
    assert e.start_dt == as_utc(datetime(2017, 8, 24, 10, 0, 0))
    assert e.end_dt == as_utc(datetime(2017, 8, 24, 12, 0, 0))
    # Check that attachment metadata is fine
    assert get_attached_items(e)['files'] == []
    folder = get_attached_items(e)['folders'][0]
    assert folder.title == 'dummy_folder'
    attachment = folder.attachments[0]
    assert attachment.title == 'dummy_attachment'
    # Check that the actual file is accessible
    assert attachment.file.open().read() == 'hello world'
コード例 #4
0
ファイル: export_test.py プロジェクト: bkolobara/indico
def test_event_import(db, dummy_user):
    with open(os.path.join(os.path.dirname(__file__), 'export_test_2.yaml'), 'r') as ref_file:
        data_yaml_content = ref_file.read()

    data_yaml = BytesIO(data_yaml_content.encode('utf-8'))
    tar_buffer = BytesIO()

    # User should be matched by e-mail
    dummy_user.email = '*****@*****.**'
    db.session.flush()

    # create a tar file artificially, using the provided YAML
    with tarfile.open(mode='w', fileobj=tar_buffer) as tarf:
        tar_info = tarfile.TarInfo('data.yaml')
        tar_info.size = len(data_yaml_content)
        tarf.addfile(tar_info, data_yaml)
        tar_info = tarfile.TarInfo('00000000-0000-4000-8000-00000000001c')
        tar_info.size = 11
        tarf.addfile(tar_info, BytesIO(b'hello world'))

    tar_buffer.seek(0)
    e = import_event(tar_buffer, create_users=False)
    # Check that event metadata is fine
    assert e.title == 'dummy#0'
    assert e.creator == dummy_user
    assert e.created_dt == as_utc(datetime(2017, 8, 24, 15, 28, 42, 652626))
    assert e.start_dt == as_utc(datetime(2017, 8, 24, 10, 0, 0))
    assert e.end_dt == as_utc(datetime(2017, 8, 24, 12, 0, 0))
    # Check that attachment metadata is fine
    assert get_attached_items(e)['files'] == []
    folder = get_attached_items(e)['folders'][0]
    assert folder.title == 'dummy_folder'
    attachment = folder.attachments[0]
    assert attachment.title == 'dummy_attachment'
    # Check that the actual file is accessible
    assert attachment.file.open().read() == 'hello world'