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
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
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)
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://')
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
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