コード例 #1
0
def FIXME_test_handle_payload(app, db, tester_id, remote_token):
    from invenio_webhooks.models import Event

    httpretty.enable()
    extra_data = remote_token.remote_account.extra_data
    assert 'auser/repo-1' in extra_data['repos']
    assert 'auser/repo-2' in extra_data['repos']

    assert len(extra_data['repos']['auser/repo-1']['depositions']) == 0
    assert len(extra_data['repos']['auser/repo-2']['depositions']) == 0

    event = Event(receiver_id='github',
                  user_id=tester_id,
                  payload=fixtures.PAYLOAD('auser', 'repo-1'))
    db.session.add(event)
    db.session.commit()

    event.process()

    db.session.expire(remote_token.remote_account)
    extra_data = self.remote_token.remote_account.extra_data
    assert len(extra_data['repos']['auser/repo-1']['depositions']) == 1
    assert len(extra_data['repos']['auser/repo-2']['depositions']) == 0

    dep = extra_data['repos']['auser/repo-1']['depositions'][0]

    assert dep['doi'].endswith(six.text_type(dep['record_id']))
    assert dep['errors'] is None
    assert dep['github_ref'] == "v1.0"
コード例 #2
0
def FIXME_test_handle_payload(app, db, tester_id, remote_token):
    from invenio_webhooks.models import Event

    httpretty.enable()
    extra_data = remote_token.remote_account.extra_data
    assert 'auser/repo-1' in extra_data['repos']
    assert 'auser/repo-2' in extra_data['repos']

    assert len(extra_data['repos']['auser/repo-1']['depositions']) == 0
    assert len(extra_data['repos']['auser/repo-2']['depositions']) == 0

    event = Event(
        receiver_id='github',
        user_id=tester_id,
        payload=fixtures.PAYLOAD('auser', 'repo-1')
    )
    db.session.add(event)
    db.session.commit()

    event.process()

    db.session.expire(remote_token.remote_account)
    extra_data = self.remote_token.remote_account.extra_data
    assert len(extra_data['repos']['auser/repo-1']['depositions']) == 1
    assert len(extra_data['repos']['auser/repo-2']['depositions']) == 0

    dep = extra_data['repos']['auser/repo-1']['depositions'][0]

    assert dep['doi'].endswith(six.text_type(dep['record_id']))
    assert dep['errors'] is None
    assert dep['github_ref'] == "v1.0"
コード例 #3
0
def test_handle_payload(app, db, location, tester_id, remote_token,
                        github_api):

    from invenio_webhooks.models import Event

    extra_data = remote_token.remote_account.extra_data

    assert '1' in extra_data['repos']
    assert 'repo-1' in extra_data['repos']['1']['full_name']
    assert '2' in extra_data['repos']
    assert 'repo-2' in extra_data['repos']['2']['full_name']

    # Create the repository that will make the release

    with db.session.begin_nested():
        Repository.enable(tester_id, github_id=1, name='repo-1', hook=1234)
        event = Event(
            receiver_id='github',
            user_id=tester_id,
            payload=fixtures.PAYLOAD('auser', 'repo-1', 1)
        )
        db.session.add(event)

    with patch('invenio_deposit.api.Deposit.indexer'):
        event.process()

        repo_1 = Repository.query.filter_by(name='repo-1', github_id=1).first()
        assert repo_1.releases.count() == 1

        release = repo_1.releases.first()
        assert release.status == ReleaseStatus.PUBLISHED
        assert release.errors is None
        assert release.tag == 'v1.0'
        assert release.record is not None
        assert release.record.get('control_number') == '1'
        record_files = release.record.get('_files')
        assert len(record_files) == 1
        assert record_files[0]['size'] > 0

        bucket = Bucket.get(record_files[0]['bucket'])
        assert bucket is not None
        assert len(bucket.objects) == 1
        assert bucket.objects[0].key == 'auser/repo-1-v1.0.zip'
コード例 #4
0
ファイル: test_tasks.py プロジェクト: slint/invenio-github
def test_handle_payload(app, db, location, tester_id, remote_token,
                        github_api):

    from invenio_webhooks.models import Event

    extra_data = remote_token.remote_account.extra_data

    assert '1' in extra_data['repos']
    assert 'repo-1' in extra_data['repos']['1']['full_name']
    assert '2' in extra_data['repos']
    assert 'repo-2' in extra_data['repos']['2']['full_name']

    # Create the repository that will make the release

    with db.session.begin_nested():
        Repository.enable(tester_id, github_id=1, name='repo-1', hook=1234)
        event = Event(receiver_id='github',
                      user_id=tester_id,
                      payload=fixtures.PAYLOAD('auser', 'repo-1', 1))
        db.session.add(event)

    with patch('invenio_deposit.api.Deposit.indexer'):
        event.process()

        repo_1 = Repository.query.filter_by(name='repo-1', github_id=1).first()
        assert repo_1.releases.count() == 1

        release = repo_1.releases.first()
        assert release.status == ReleaseStatus.PUBLISHED
        assert release.errors is None
        assert release.tag == 'v1.0'
        assert release.record is not None
        assert release.record.get('control_number') == '1'
        record_files = release.record.get('_files')
        assert len(record_files) == 1
        assert record_files[0]['size'] > 0

        bucket = Bucket.get(record_files[0]['bucket'])
        assert bucket is not None
        assert len(bucket.objects) == 1
        assert bucket.objects[0].key == 'auser/repo-1-v1.0.zip'