def METHOD_NAME(self, mock_cache_get: Mock, mock_cache_set: Mock, mock_request_get: Mock):
    mock_cache_get.return_value = None
    mock_request_get.side_effect = unsuccessful_github_response
    with self.assertLogs(level=ERROR) as cm:
        releases = get_releases()
    # Check log entry
    self.assertEqual(len(cm.output), 1)
    log_output = cm.output[0]
    last_log_line = log_output.split("\n")[-1]
    self.assertRegex(last_log_line, "404 .* Not Found")
    # Check result
    self.assertListEqual(releases, [])
    # Check if correct request is made
    mock_request_get.assert_called_once_with(
        "https://localhost/unittest/releases",
        headers={"Accept": "application/vnd.github.v3+json"},
        proxies=settings.HTTP_PROXIES,
        timeout=15,
    )
    # Check if failure is put in cache
    mock_cache_set.assert_called_once_with("latest_release_no_retry", "https://localhost/unittest/releases", 900)