From 98b09c9747613914cf05cf7153b204fbcf36ff7a Mon Sep 17 00:00:00 2001 From: Dustin Ingram Date: Wed, 10 Jul 2019 12:08:30 +0200 Subject: [PATCH 1/3] codelabs/functions: create 'Python Powered' codelab --- codelabs/functions/python_powered/app.py | 9 ++++ codelabs/functions/python_powered/main.py | 45 ++++++++++++++++++ .../python_powered/python_powered.jpg | Bin 0 -> 93426 bytes .../functions/python_powered/test_main.py | 25 ++++++++++ 4 files changed, 79 insertions(+) create mode 100644 codelabs/functions/python_powered/app.py create mode 100644 codelabs/functions/python_powered/main.py create mode 100644 codelabs/functions/python_powered/python_powered.jpg create mode 100644 codelabs/functions/python_powered/test_main.py diff --git a/codelabs/functions/python_powered/app.py b/codelabs/functions/python_powered/app.py new file mode 100644 index 00000000000..5f75d9eb1dd --- /dev/null +++ b/codelabs/functions/python_powered/app.py @@ -0,0 +1,9 @@ +from main import python_powered +from flask import Flask, request + +app = Flask(__name__) + + +@app.route("/") +def index(): + return python_powered(request) diff --git a/codelabs/functions/python_powered/main.py b/codelabs/functions/python_powered/main.py new file mode 100644 index 00000000000..ddc69b31b26 --- /dev/null +++ b/codelabs/functions/python_powered/main.py @@ -0,0 +1,45 @@ +from flask import escape +from flask import send_file + + +def hello_world(request): + """HTTP Cloud Function. + Args: + request (flask.Request): The request object. + + Returns: + The response text, or any set of values that can be turned into a + Response object using `make_response` + . + """ + return "Hello World!" + + +def hello_name(request): + """HTTP Cloud Function. + Args: + request (flask.Request): The request object. + + Returns: + The response text, or any set of values that can be turned into a + Response object using `make_response` + . + """ + request_args = request.args + + if request_args and "name" in request_args: + name = request_args["name"] + else: + name = "World" + return "Hello {}!".format(escape(name)) + + +def python_powered(request): + """HTTP Cloud Function. + Args: + request (flask.Request): The request object. + + Returns: + The response file, a JPG image that says "Python Powered" + """ + return send_file("python_powered.jpg", mimetype="image/jpg") diff --git a/codelabs/functions/python_powered/python_powered.jpg b/codelabs/functions/python_powered/python_powered.jpg new file mode 100644 index 0000000000000000000000000000000000000000..82e364938a8dba5fa34675b3d71ea3ad489602c0 GIT binary patch literal 93426 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 +XGI#2zcynoc*_(wxBGv9B34DZh! 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 literal 0 HcmV?d00001 diff --git a/codelabs/functions/python_powered/test_main.py b/codelabs/functions/python_powered/test_main.py new file mode 100644 index 00000000000..978ac62fd70 --- /dev/null +++ b/codelabs/functions/python_powered/test_main.py @@ -0,0 +1,25 @@ +from unittest import TestCase +from unittest.mock import Mock + +from main import hello_name, hello_world + + +class TestHello(TestCase): + def test_hello_world(self): + req = Mock() + + # Call tested function + assert hello_world(req) == "Hello World!" + + def test_hello_name_no_name(self): + req = Mock(args={}) + + # Call tested function + assert hello_name(req) == "Hello World!" + + def test_hello_name_with_name(self): + name = "test" + req = Mock(args={"name": name}) + + # Call tested function + assert hello_name(req) == "Hello {}!".format(name) From 4896f26c79871325bfeb69bac3432c7db02db132 Mon Sep 17 00:00:00 2001 From: Dustin Ingram Date: Wed, 10 Jul 2019 23:06:16 +0200 Subject: [PATCH 2/3] Add license headers --- codelabs/functions/python_powered/app.py | 14 ++++++++++++++ codelabs/functions/python_powered/main.py | 14 ++++++++++++++ codelabs/functions/python_powered/test_main.py | 14 ++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/codelabs/functions/python_powered/app.py b/codelabs/functions/python_powered/app.py index 5f75d9eb1dd..5c46368d04f 100644 --- a/codelabs/functions/python_powered/app.py +++ b/codelabs/functions/python_powered/app.py @@ -1,3 +1,17 @@ +# Copyright 2019 Google Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from main import python_powered from flask import Flask, request diff --git a/codelabs/functions/python_powered/main.py b/codelabs/functions/python_powered/main.py index ddc69b31b26..6937626da3b 100644 --- a/codelabs/functions/python_powered/main.py +++ b/codelabs/functions/python_powered/main.py @@ -1,3 +1,17 @@ +# Copyright 2017 Google Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from flask import escape from flask import send_file diff --git a/codelabs/functions/python_powered/test_main.py b/codelabs/functions/python_powered/test_main.py index 978ac62fd70..4af99698093 100644 --- a/codelabs/functions/python_powered/test_main.py +++ b/codelabs/functions/python_powered/test_main.py @@ -1,3 +1,17 @@ +# Copyright 2017 Google Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from unittest import TestCase from unittest.mock import Mock From ed267862c8c87874db6a46917b35bec7dd28e18f Mon Sep 17 00:00:00 2001 From: Dustin Ingram Date: Wed, 10 Jul 2019 23:11:03 +0200 Subject: [PATCH 3/3] Import modules, not members --- codelabs/functions/python_powered/app.py | 10 ++++++---- codelabs/functions/python_powered/main.py | 7 +++---- .../functions/python_powered/test_main.py | 20 +++++++++---------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/codelabs/functions/python_powered/app.py b/codelabs/functions/python_powered/app.py index 5c46368d04f..8df19584496 100644 --- a/codelabs/functions/python_powered/app.py +++ b/codelabs/functions/python_powered/app.py @@ -12,12 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -from main import python_powered -from flask import Flask, request +import flask -app = Flask(__name__) +import main + + +app = flask.Flask(__name__) @app.route("/") def index(): - return python_powered(request) + return main.python_powered(flask.request) diff --git a/codelabs/functions/python_powered/main.py b/codelabs/functions/python_powered/main.py index 6937626da3b..7fe2d0478c5 100644 --- a/codelabs/functions/python_powered/main.py +++ b/codelabs/functions/python_powered/main.py @@ -12,8 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from flask import escape -from flask import send_file +import flask def hello_world(request): @@ -45,7 +44,7 @@ def hello_name(request): name = request_args["name"] else: name = "World" - return "Hello {}!".format(escape(name)) + return "Hello {}!".format(flask.escape(name)) def python_powered(request): @@ -56,4 +55,4 @@ def python_powered(request): Returns: The response file, a JPG image that says "Python Powered" """ - return send_file("python_powered.jpg", mimetype="image/jpg") + return flask.send_file("python_powered.jpg", mimetype="image/jpg") diff --git a/codelabs/functions/python_powered/test_main.py b/codelabs/functions/python_powered/test_main.py index 4af99698093..a7837600d9c 100644 --- a/codelabs/functions/python_powered/test_main.py +++ b/codelabs/functions/python_powered/test_main.py @@ -12,28 +12,28 @@ # See the License for the specific language governing permissions and # limitations under the License. -from unittest import TestCase -from unittest.mock import Mock +import unittest +import unittest.mock -from main import hello_name, hello_world +import main -class TestHello(TestCase): +class TestHello(unittest.TestCase): def test_hello_world(self): - req = Mock() + req = unittest.mock.Mock() # Call tested function - assert hello_world(req) == "Hello World!" + assert main.hello_world(req) == "Hello World!" def test_hello_name_no_name(self): - req = Mock(args={}) + req = unittest.mock.Mock(args={}) # Call tested function - assert hello_name(req) == "Hello World!" + assert main.hello_name(req) == "Hello World!" def test_hello_name_with_name(self): name = "test" - req = Mock(args={"name": name}) + req = unittest.mock.Mock(args={"name": name}) # Call tested function - assert hello_name(req) == "Hello {}!".format(name) + assert main.hello_name(req) == "Hello {}!".format(name)