예제 #1
0
def test_gb_info():
    """Test providing a gravitybee info file. """
    with pytest.raises(ReferenceError):
        Arguments(
            token='abc',
            slug=TEST_SLUG,
            tag=TEST_TAG,
            gb_info_file=os.path.join('tests', 'gravitybee-info.json'))
예제 #2
0
def test_no_release_no_tag(mock_get_repo):
    """Test error when no release/no tag exists. """

    # this is to simulate no repo existing yet, i.e., need to create
    mock_get_repo.return_value.get_latest_release.side_effect = \
        github.GithubException('status', 'data', None)

    with pytest.raises(AttributeError):
        Arguments(
            token='abc',
            slug=TEST_SLUG,
            latest=True)
예제 #3
0
def test_no_release(mock_get_repo):
    """Test create selected when no release exists. """

    # this is to simulate no repo existing yet, i.e., need to create
    mock_get_repo.return_value.get_release.side_effect = \
        github.GithubException('status', 'data', None)

    args = Arguments(
        token='abc',
        slug=TEST_SLUG,
        tag=TEST_TAG)
    assert args.opts["internal_cmd"] == Arguments.INTERNAL_CMD_CREATE
예제 #4
0
def test_get_repo(mock_get_repo):
    """Test getting a repo for Github API. """
    mock_release = MagicMock()
    mock_release.tag_name = 'Mocked tag'

    mock_get_repo.return_value.get_release.return_value = mock_release

    Arguments(
        token='abc',
        slug=TEST_SLUG,
        tag=TEST_TAG)

    mock_get_repo.return_value.get_release.assert_called_once()
예제 #5
0
def test_no_slug_arguments():
    """Test missing slug. """
    restore_enviro = os.environ

    if os.environ.get('TRAVIS_REPO_SLUG', False):
        del os.environ['TRAVIS_REPO_SLUG']
    if os.environ.get('APPVEYOR_REPO_NAME', False):
        del os.environ['APPVEYOR_REPO_NAME']

    with pytest.raises(AttributeError):
        Arguments(token='abc', empty_arg=None)

    os.environ = restore_enviro
예제 #6
0
def test_get_latest_repo(mock_get_repo):
    """Test getting latest release. """
    mock_release = MagicMock()
    mock_release.tag_name = 'Mocked tag'

    mock_get_repo.return_value.get_latest_release.return_value = mock_release

    args = Arguments(
        token='abc',
        slug='bad slug',
        latest=True,
        user='******',
        repo='repo')
    assert args.opts["slug"] == 'user/repo'

    mock_get_repo.return_value.get_latest_release.assert_called_once()
예제 #7
0
def test_find_and_delete(mock_get_repo):
    """Test find and delete release."""
    mock_release = MagicMock()
    mock_release.delete_release.return_value = True

    mock_get_repo.return_value.get_release.return_value = mock_release

    args = Arguments(
        token='abc',
        slug=TEST_SLUG,
        tag=TEST_TAG,
        commitish=TEST_COMMITISH,
        command=Arguments.CMD_DELETE)
    rel_man = ReleaseMgr(args)
    rel_man.execute()

    mock_release.delete_release.assert_called_once()
예제 #8
0
def test_create_execute(mock_get_repo):
    """Test create selected when no release exists. """
    mock_release = MagicMock()
    mock_release.tag_name = 'Mocked tag'

    mock_get_repo.return_value.create_git_release.return_value = mock_release

    # this is to simulate no repo existing yet, i.e., need to create
    mock_get_repo.return_value.get_release.side_effect = \
        github.GithubException('status', 'data', None)

    args = Arguments(
        token='abc',
        slug=TEST_SLUG,
        tag=TEST_TAG,
        commitish=TEST_COMMITISH)
    rel_man = ReleaseMgr(args)
    rel_man.execute()

    mock_get_repo.return_value.create_git_release.assert_called_once()
예제 #9
0
def test_bad_command():
    """Test providing a bad command. """
    with pytest.raises(AttributeError):
        Arguments(token='abc', slug=TEST_SLUG, tag=TEST_TAG, command='bad')
예제 #10
0
def test_sha_hash_nonexistent_file():
    """Test what happens when getting a sha hash for nonexistent file. """
    assert Arguments.get_hash('nonexistent_file.xyz') is None
예제 #11
0
def test_sha_hash():
    """Test getting the sha hash for a test file. """
    assert Arguments.get_hash(
        os.path.join('tests', 'sha_hash_test.txt')) == \
        '809838efd41698422636fb2df8bebe2a7e8c29a3baf109b3bdceed6812266903'
예제 #12
0
def test_blank_arguments():
    """Test authorization by getting blank arguments. """
    with pytest.raises(PermissionError):
        Arguments()