def test_receive_when_target_not_in_post_data(test_source): request = Mock() request.method = "POST" request.POST = {"source": test_source} response = receive(request) assert isinstance(response, HttpResponseBadRequest)
def test_receive_when_target_does_not_resolve(mock_url_resolves, test_source, test_target): request = Mock() request.method = "POST" request.POST = {"source": test_source, "target": test_target} mock_url_resolves.return_value = False response = receive(request) mock_url_resolves.assert_called_once_with(test_target) assert isinstance(response, HttpResponseBadRequest)
def test_receive_when_general_exception_occurs(mock_url_resolves, mock_fetch_and_validate_source, test_source, test_target): request = Mock() request.method = "POST" request.POST = {"source": test_source, "target": test_target} mock_url_resolves.return_value = True mock_fetch_and_validate_source.side_effect = Exception response = receive(request) mock_fetch_and_validate_source.assert_called_once_with( test_source, test_target) mock_url_resolves.assert_called_once_with(test_target) assert isinstance(response, HttpResponseServerError)
def test_receive_when_source_does_not_contain_target( mock_url_resolves, mock_fetch_and_validate_source, mock_invalidate, test_source, test_target): request = Mock() request.method = "POST" request.POST = {"source": test_source, "target": test_target} mock_url_resolves.return_value = True mock_fetch_and_validate_source.side_effect = TargetNotFoundError response = receive(request) mock_fetch_and_validate_source.assert_called_once_with( test_source, test_target) mock_url_resolves.assert_called_once_with(test_target) assert mock_invalidate.call_count == 1 assert isinstance(response, HttpResponseBadRequest)
def test_receive_happy_path(mock_url_resolves, mock_fetch_and_validate_source, mock_update, test_source, test_target): request = Mock() request.method = "POST" request.POST = {"source": test_source, "target": test_target} mock_url_resolves.return_value = True mock_fetch_and_validate_source.return_value = "foo" response = receive(request) mock_fetch_and_validate_source.assert_called_once_with( test_source, test_target) mock_update.assert_called_once_with( test_source, test_target, mock_fetch_and_validate_source.return_value) mock_url_resolves.assert_called_once_with(test_target) assert isinstance(response, HttpResponse)