Exemple #1
0
def test_process_url(mocker, SETTINGS):
    REPOSITORIES = mocker.patch(
        'jenkins_epo.procedures.REPOSITORIES', MagicMock()
    )
    throttle_github = mocker.patch(
        'jenkins_epo.procedures.throttle_github', CoroutineMock(),
    )
    Bot = mocker.patch('jenkins_epo.procedures.Bot')
    from_url = mocker.patch(
        'jenkins_epo.procedures.Head.from_url', CoroutineMock()
    )

    from jenkins_epo.procedures import process_url

    bot = Bot.return_value
    bot.run = CoroutineMock()
    head = Mock(sha='cafed0d0')
    head.repository.load_settings = CoroutineMock()
    REPOSITORIES.__contains__.return_value = True
    from_url.return_value = head

    yield from process_url('https://github.com/owner/name/tree/master')

    assert throttle_github.mock_calls
    assert from_url.mock_calls
    assert bot.run.mock_calls
Exemple #2
0
def test_process_url_exclusive(mocker, SETTINGS, event_loop):
    REPOSITORIES = mocker.patch(
        'jenkins_epo.procedures.REPOSITORIES', MagicMock()
    )
    REPOSITORIES.__contains__.return_value = True
    Bot = mocker.patch('jenkins_epo.procedures.Bot')
    from_url = mocker.patch(
        'jenkins_epo.procedures.Head.from_url', CoroutineMock()
    )

    from jenkins_epo.procedures import process_url, _task_map

    bot = Bot.return_value
    bot.run = CoroutineMock()
    head = from_url.return_value
    head.url = 'url://test_process_url_exclusive'
    head.sha = 'cafed0d0'
    head.repository.load_settings = CoroutineMock()

    _task_map[head.url] = running = Mock()
    running.done.return_value = False

    yield from process_url(head.url, throttle=False)

    assert running.cancel.mock_calls
    assert bot.run.mock_calls
Exemple #3
0
def test_process_url_not_found(mocker, SETTINGS):
    from_url = mocker.patch(
        'jenkins_epo.procedures.Head.from_url', CoroutineMock()
    )
    from jenkins_epo.procedures import process_url, ApiNotFoundError
    from_url.side_effect = ApiNotFoundError('url://', Mock(), Mock())

    yield from process_url('url://', throttle=False)
Exemple #4
0
def test_process_url_skip(mocker, SETTINGS):
    heads_filter = mocker.patch(
        'jenkins_epo.procedures.Repository.heads_filter', []
    )
    heads_filter[:] = ['NONE']

    from jenkins_epo.procedures import process_url

    yield from process_url('url://')
Exemple #5
0
def test_process_url_unmanaged(mocker, SETTINGS, event_loop):
    REPOSITORIES = mocker.patch(
        'jenkins_epo.procedures.REPOSITORIES', MagicMock()
    )
    REPOSITORIES.__contains__.return_value = False
    Bot = mocker.patch('jenkins_epo.procedures.Bot')
    from_url = mocker.patch(
        'jenkins_epo.procedures.Head.from_url', CoroutineMock()
    )

    from jenkins_epo.procedures import process_url

    bot = Bot.return_value
    bot.run = CoroutineMock()
    head = from_url.return_value
    head.url = 'url://test_process_url_exclusive'
    head.repository.load_settings = CoroutineMock()

    yield from process_url(head.url, throttle=False)

    assert not head.repository.load_settings.mock_calls
    assert not bot.run.mock_calls
Exemple #6
0
def test_process_url_repo_denied(mocker, SETTINGS):
    REPOSITORIES = mocker.patch(
        'jenkins_epo.procedures.REPOSITORIES', MagicMock()
    )
    REPOSITORIES.__contains__.return_value = True
    Bot = mocker.patch('jenkins_epo.procedures.Bot')
    from_url = mocker.patch(
        'jenkins_epo.procedures.Head.from_url', CoroutineMock()
    )

    from jenkins_epo.procedures import process_url, UnauthorizedRepository

    bot = Bot.return_value
    head = from_url.return_value
    head.sha = 'cafed0d0'
    head.url = 'url://test_process_url_repo_denied'
    head.repository.load_settings = CoroutineMock(
        side_effect=UnauthorizedRepository()
    )

    yield from process_url(head.url, throttle=False)

    assert head.repository.load_settings.mock_calls
    assert not bot.run.mock_calls