Skip to content

Commit 1c8a17c

Browse files
author
Matthew Fisher
committed
Merge pull request #592 from bacongobbler/fixup-deis-logs-response
fix(controller): use django HttpResponse for logs
2 parents 5658815 + 3244367 commit 1c8a17c

2 files changed

Lines changed: 19 additions & 20 deletions

File tree

rootfs/api/tests/test_app.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,32 +99,33 @@ def test_app_actions(self, mock_requests, mock_get):
9999
url = "/v2/apps/{app_id}/logs".format(**locals())
100100
response = self.client.get(url)
101101
self.assertEqual(response.status_code, 204)
102-
self.assertEqual(response.data, "No logs for {}".format(app_id))
103102

104103
# test logs - 404 from deis-logger
105104
mock_response.status_code = 404
106105
response = self.client.get(url)
107106
self.assertEqual(response.status_code, 204)
108-
self.assertEqual(response.data, "No logs for {}".format(app_id))
109107

110108
# test logs - unanticipated status code from deis-logger
111109
mock_response.status_code = 400
112110
response = self.client.get(url)
113-
self.assertEqual(response.status_code, 500)
114-
self.assertEqual(response.data, "Error accessing logs for {}".format(app_id))
111+
self.assertContains(
112+
response,
113+
"Error accessing logs for {}".format(app_id),
114+
status_code=500)
115115

116116
# test logs - success accessing deis-logger
117117
mock_response.status_code = 200
118118
mock_response.content = FAKE_LOG_DATA
119119
response = self.client.get(url)
120-
self.assertEqual(response.status_code, 200)
121-
self.assertEqual(response.data, FAKE_LOG_DATA)
120+
self.assertContains(response, FAKE_LOG_DATA, status_code=200)
122121

123122
# test logs - HTTP request error while accessing deis-logger
124123
mock_get.side_effect = requests.exceptions.RequestException('Boom!')
125124
response = self.client.get(url)
126-
self.assertEqual(response.status_code, 500)
127-
self.assertEqual(response.data, "Error accessing logs for {}".format(app_id))
125+
self.assertContains(
126+
response,
127+
"Error accessing logs for {}".format(app_id),
128+
status_code=500)
128129

129130
# TODO: test run needs an initial build
130131

rootfs/api/views.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -234,22 +234,20 @@ def scale(self, request, **kwargs):
234234
def logs(self, request, **kwargs):
235235
app = self.get_object()
236236
try:
237-
return Response(app.logs(request.query_params.get('log_lines',
238-
str(settings.LOG_LINES))),
239-
status=status.HTTP_200_OK, content_type='text/plain')
237+
return HttpResponse(app.logs(request.query_params.get('log_lines',
238+
str(settings.LOG_LINES))),
239+
status=status.HTTP_200_OK, content_type='text/plain')
240240
except requests.exceptions.RequestException:
241-
return Response("Error accessing logs for {}".format(app.id),
242-
status=status.HTTP_500_INTERNAL_SERVER_ERROR,
243-
content_type='text/plain')
244-
except EnvironmentError as e:
245-
if str(e) == 'Error accessing deis-logger':
246-
return Response("Error accessing logs for {}".format(app.id),
241+
return HttpResponse("Error accessing logs for {}".format(app.id),
247242
status=status.HTTP_500_INTERNAL_SERVER_ERROR,
248243
content_type='text/plain')
244+
except EnvironmentError as e:
245+
if str(e) == 'Error accessing deis-logger':
246+
return HttpResponse("Error accessing logs for {}".format(app.id),
247+
status=status.HTTP_500_INTERNAL_SERVER_ERROR,
248+
content_type='text/plain')
249249
else:
250-
return Response("No logs for {}".format(app.id),
251-
status=status.HTTP_204_NO_CONTENT,
252-
content_type='text/plain')
250+
return HttpResponse(status=status.HTTP_204_NO_CONTENT)
253251

254252
def run(self, request, **kwargs):
255253
app = self.get_object()

0 commit comments

Comments
 (0)