Exemple #1
0
def test_release_force_with_changelog_base(github, request):

    test_utils.create_release(github.api, request, 'cf2d64132f00c849ae1bb62ffb2e32b719b6cbac', '1.0.0')

    github.api.set_version(value='1.0.0', branch='release')

    # run another release with a changelog generated from a sha prior to existing release
    # this should cause another major version bump
    github.run('release --branch release --force --changelog-base 4772c5708ff25a69f1f6c8106c7fe863c6686459')

    expected_release_title = '2.0.0'

    github_release = github.api.repo.get_release(id=expected_release_title)

    assert github_release
Exemple #2
0
def test_delete_tag(github, request):

    release = test_utils.create_release(github.api, request, LAST_COMMIT)

    github.run('delete-tag --name {}'.format(release.title))

    with pytest.raises(UnknownObjectException):
        github.api.repo.get_git_ref('tags/{}'.format(release.title))
Exemple #3
0
def test_close_issue_issue_doesnt_exist(github, request):

    release = test_utils.create_release(github.api, request, LAST_COMMIT)

    expected_output = 'Issue 100 not found'

    result = github.run('close-issue --number=100 --release={}'.format(release.title),
                        catch_exceptions=True)

    assert expected_output in result.std_out
Exemple #4
0
def test_close_issue(github, request):

    release = test_utils.create_release(github.api, request, LAST_COMMIT)

    github.run('close-issue --number=7 --release {}'.format(release.title))

    expected_status = 'closed'
    expected_comment = 'This issue is part of release [{}]({})'.format(
        release.title, release.html_url)

    issue = github.api.repo.get_issue(number=7)

    issue_comments = [comment.body for comment in issue.get_comments()]

    assert expected_status == issue.state
    assert expected_comment in issue_comments
Exemple #5
0
def test_upload_asset(github, request, temp_dir):

    release = test_utils.create_release(github.api, request, LAST_COMMIT)

    asset_file = os.path.join(temp_dir, 'asset')
    with open(asset_file, 'w') as stream:
        stream.write('asset')

    result = github.run('upload-asset --asset {} --release {}'.format(asset_file, release.title))

    expected_output = 'Uploaded asset: https://github.com/{}/releases/download/{}/asset'.format(
        REPO_UNDER_TEST, release.title)

    assets = [asset.name for asset in github.api.repo.get_release(id=release.title).get_assets()]

    assert 'asset' in assets
    assert expected_output in result.std_out
Exemple #6
0
def test_upload_changelog(github, request, temp_dir):

    release = test_utils.create_release(github.api, request, LAST_COMMIT)

    changelog_file = os.path.join(temp_dir, 'changelog')
    changelog_content = 'changelog'

    with open(changelog_file, 'w') as stream:
        stream.write(changelog_content)

    result = github.run('upload-changelog --changelog {} --release {}'
                        .format(changelog_file, release.title), catch_exceptions=True)

    expected_output = 'Uploaded changelog to release {}'.format(release.title)

    release_body = github.api.repo.get_release(id=release.title).body

    assert changelog_content == release_body
    assert expected_output in result.std_out