From 5c37f072e53c1af181c72a26e0d2c7b319d68009 Mon Sep 17 00:00:00 2001 From: Andrew Gorcester Date: Tue, 14 Nov 2017 15:07:51 -0800 Subject: [PATCH 1/2] Convert tasks example to use logging for testability --- appengine/flexible/tasks/main.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/appengine/flexible/tasks/main.py b/appengine/flexible/tasks/main.py index 0bcf6fe0645..47446c1bb59 100644 --- a/appengine/flexible/tasks/main.py +++ b/appengine/flexible/tasks/main.py @@ -14,6 +14,8 @@ """App Engine app to serve as an endpoint for App Engine queue samples.""" +import logging + from flask import Flask, request app = Flask(__name__) @@ -23,7 +25,8 @@ def log_payload(): """Log the request payload.""" payload = request.get_data(as_text=True) or '(empty payload)' - print('Received task with payload: {}'.format(payload)) + # Send our test logging message as a "warn" to ensure visibility. + logging.warn('Received task with payload: {}'.format(payload)) return 'Printed task payload: {}'.format(payload) From d559a2489a44734697b61f1171c04262fd586f03 Mon Sep 17 00:00:00 2001 From: Andrew Gorcester Date: Wed, 15 Nov 2017 10:45:46 -0800 Subject: [PATCH 2/2] Use capsys to test tasks --- appengine/flexible/tasks/main.py | 5 +---- appengine/flexible/tasks/main_test.py | 15 +++++++-------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/appengine/flexible/tasks/main.py b/appengine/flexible/tasks/main.py index 47446c1bb59..0bcf6fe0645 100644 --- a/appengine/flexible/tasks/main.py +++ b/appengine/flexible/tasks/main.py @@ -14,8 +14,6 @@ """App Engine app to serve as an endpoint for App Engine queue samples.""" -import logging - from flask import Flask, request app = Flask(__name__) @@ -25,8 +23,7 @@ def log_payload(): """Log the request payload.""" payload = request.get_data(as_text=True) or '(empty payload)' - # Send our test logging message as a "warn" to ensure visibility. - logging.warn('Received task with payload: {}'.format(payload)) + print('Received task with payload: {}'.format(payload)) return 'Printed task payload: {}'.format(payload) diff --git a/appengine/flexible/tasks/main_test.py b/appengine/flexible/tasks/main_test.py index 3ae5f2f345b..18bf93e51ba 100644 --- a/appengine/flexible/tasks/main_test.py +++ b/appengine/flexible/tasks/main_test.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import mock import pytest @@ -28,19 +27,19 @@ def test_index(app): assert r.status_code == 200 -@mock.patch('logging.warn') -def test_log_payload(logging_mock, app): - payload = 'hello' +def test_log_payload(capsys, app): + payload = 'test_payload' r = app.post('/log_payload', data=payload) assert r.status_code == 200 - assert logging_mock.called + out, _ = capsys.readouterr() + assert payload in out -@mock.patch('logging.warn') -def test_empty_payload(logging_mock, app): +def test_empty_payload(capsys, app): r = app.post('/log_payload') assert r.status_code == 200 - assert logging_mock.called + out, _ = capsys.readouterr() + assert 'empty payload' in out