From 39195dd0ab4db02753b2c3aee77664107e128a9f Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 00:53:25 +0530 Subject: [PATCH 01/14] Added a python file to calculate the angle. --- clock_angle.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 clock_angle.py diff --git a/clock_angle.py b/clock_angle.py new file mode 100644 index 0000000..e3438d3 --- /dev/null +++ b/clock_angle.py @@ -0,0 +1,23 @@ +def calcAngle(h,m): + + if (h < 0 or m < 0 or h > 12 or m > 60): + print('Wrong input') + if (h == 12): + h = 0 + if (m == 60): + m = 0 + + # Calculate the angles moved by + # hour and minute hands with + # reference to 12:00 + hour_angle = 0.5 * (h * 60 + m) + minute_angle = 6 * m + + # Find the difference between two angles + angle = abs(hour_angle - minute_angle) + + # Return the smaller angle of two + # possible angles + angle = min(360 - angle, angle) + + return angle From a8dbf238faf7f01dd2fff8d75d70ced2d59166b8 Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 01:35:49 +0530 Subject: [PATCH 02/14] Update clock_angle.py --- clock_angle.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/clock_angle.py b/clock_angle.py index e3438d3..1f994ce 100644 --- a/clock_angle.py +++ b/clock_angle.py @@ -1,17 +1,25 @@ -def calcAngle(h,m): +def calcAngle(request): + request_json = request.get_json(silent=True) + request_args = request.args - if (h < 0 or m < 0 or h > 12 or m > 60): + if request_json and ('hour' in request_json and 'minute' in request_json): + hour = request_json['hour'] + minute = request_json['minute'] + else: + hour = 12 + minute = 0 + if (hour < 0 or minute < 0 or hour > 12 or minute > 60): print('Wrong input') - if (h == 12): - h = 0 - if (m == 60): - m = 0 + if (hour == 12): + hour = 0 + if (minute == 60): + minute = 0 # Calculate the angles moved by # hour and minute hands with # reference to 12:00 - hour_angle = 0.5 * (h * 60 + m) - minute_angle = 6 * m + hour_angle = 0.5 * (hour * 60 + minute) + minute_angle = 6 * minute # Find the difference between two angles angle = abs(hour_angle - minute_angle) @@ -20,4 +28,4 @@ def calcAngle(h,m): # possible angles angle = min(360 - angle, angle) - return angle + return str(int(angle)) From 6951d166ff03b2f594a322d5d3e2624d473d0693 Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 01:41:03 +0530 Subject: [PATCH 03/14] Rename clock_angle.py to main.py --- clock_angle.py => main.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename clock_angle.py => main.py (100%) diff --git a/clock_angle.py b/main.py similarity index 100% rename from clock_angle.py rename to main.py From d82c42a6079ca518772e0541956f9403340efab9 Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 01:57:31 +0530 Subject: [PATCH 04/14] Update main.py --- main.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 1f994ce..11d1915 100644 --- a/main.py +++ b/main.py @@ -1,3 +1,4 @@ +from flask import escape def calcAngle(request): request_json = request.get_json(silent=True) request_args = request.args @@ -26,6 +27,6 @@ def calcAngle(request): # Return the smaller angle of two # possible angles - angle = min(360 - angle, angle) + angle = str(int(min(360 - angle, angle))) - return str(int(angle)) + return 'Angle is {}'.format(escape(angle)) From 665f270aba370034be4fe1f570f9defaa2b9b451 Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 01:58:42 +0530 Subject: [PATCH 05/14] Add files via upload --- main_test.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 main_test.py diff --git a/main_test.py b/main_test.py new file mode 100644 index 0000000..999453d --- /dev/null +++ b/main_test.py @@ -0,0 +1,20 @@ +from unittest.mock import Mock + +import main + + +def test_clock_angle(): + name = 'test' + data = {'hour': 4,'minute':45} + req = Mock(get_json=Mock(return_value=data), args=data) + + # Call tested function + assert main.calcAngle(req) == 'Angle is {}!'.format(angle) + + +def test_print_hello_world(): + data = {} + req = Mock(get_json=Mock(return_value=data), args=data) + + # Call tested function + assert main.calcAngle(req) == 'Angle is {}'.format(angle) \ No newline at end of file From cc6c7814199f4f490fbaa8aa6d34b13da80f1244 Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 02:23:59 +0530 Subject: [PATCH 06/14] Create requirements.txt --- requirements.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..d318800 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +flask==1.1.2 +google-cloud-error-reporting==0.33.0 From ee390a23cdd1929220c8c3925b9f562936a86b7d Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 02:25:14 +0530 Subject: [PATCH 07/14] Create requirements-test.txt --- requirements-test.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 requirements-test.txt diff --git a/requirements-test.txt b/requirements-test.txt new file mode 100644 index 0000000..781d432 --- /dev/null +++ b/requirements-test.txt @@ -0,0 +1 @@ +pytest==5.3.2 From d771c37a9c7609a8955fb3584927f6ad1a89a81b Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 13:59:09 +0530 Subject: [PATCH 08/14] Update main.py --- main.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/main.py b/main.py index 11d1915..e36748b 100644 --- a/main.py +++ b/main.py @@ -1,14 +1,13 @@ -from flask import escape -def calcAngle(request): - request_json = request.get_json(silent=True) - request_args = request.args - - if request_json and ('hour' in request_json and 'minute' in request_json): - hour = request_json['hour'] - minute = request_json['minute'] - else: - hour = 12 - minute = 0 +from flask import Flask + + +# If `entrypoint` is not defined in app.yaml, App Engine will look for an app +# called `app` in `main.py`. +app = Flask(__name__) + + +@app.route('/') +def calcAngle(hour,minute): if (hour < 0 or minute < 0 or hour > 12 or minute > 60): print('Wrong input') if (hour == 12): @@ -29,4 +28,9 @@ def calcAngle(request): # possible angles angle = str(int(min(360 - angle, angle))) - return 'Angle is {}'.format(escape(angle)) + return angle +if __name__ == '__main__': + # This is used when running locally only. When deploying to Google App + # Engine, a webserver process such as Gunicorn will serve the app. This + # can be configured by adding an `entrypoint` to app.yaml. + app.run(host='127.0.0.1', port=8080, debug=True) From 0f5d062c313b65e241b4a8bbfa52515143d7f2ae Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 13:59:30 +0530 Subject: [PATCH 09/14] Update main.py From ad14358576f622de177d4f6378c2951eb2539eb5 Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 14:07:29 +0530 Subject: [PATCH 10/14] Update main_test.py --- main_test.py | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/main_test.py b/main_test.py index 999453d..0b53fc9 100644 --- a/main_test.py +++ b/main_test.py @@ -4,17 +4,9 @@ def test_clock_angle(): - name = 'test' - data = {'hour': 4,'minute':45} - req = Mock(get_json=Mock(return_value=data), args=data) - - # Call tested function - assert main.calcAngle(req) == 'Angle is {}!'.format(angle) - - -def test_print_hello_world(): - data = {} - req = Mock(get_json=Mock(return_value=data), args=data) - - # Call tested function - assert main.calcAngle(req) == 'Angle is {}'.format(angle) \ No newline at end of file + main.app.testing = True + client = main.app.test.test_client(3,0) + + r = client.get('/') + assert r.status_code == 200 + assert '90' in r.data.decode('utf-8') From a36f32d97adcd5dabea0c3967046dec31aeb57fb Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Thu, 7 May 2020 14:08:54 +0530 Subject: [PATCH 11/14] Create app.yaml --- app.yaml | 1 + 1 file changed, 1 insertion(+) create mode 100644 app.yaml diff --git a/app.yaml b/app.yaml new file mode 100644 index 0000000..a0b719d --- /dev/null +++ b/app.yaml @@ -0,0 +1 @@ +runtime: python37 From 03e2f95481e4b0266f1c808518d67c8045ce8c7d Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Wed, 13 May 2020 01:42:41 +0530 Subject: [PATCH 12/14] Update main_test.py --- main_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main_test.py b/main_test.py index 0b53fc9..7cf2077 100644 --- a/main_test.py +++ b/main_test.py @@ -7,6 +7,6 @@ def test_clock_angle(): main.app.testing = True client = main.app.test.test_client(3,0) - r = client.get('/') + r = client.get('/clacAngle?hour=3&minute=0') assert r.status_code == 200 assert '90' in r.data.decode('utf-8') From 4aa49ce3c770b7816dfb77167cc39d315b5cbf80 Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Wed, 13 May 2020 01:47:27 +0530 Subject: [PATCH 13/14] Update main.py --- main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index e36748b..4db78d3 100644 --- a/main.py +++ b/main.py @@ -6,8 +6,10 @@ app = Flask(__name__) -@app.route('/') -def calcAngle(hour,minute): +@app.route('/calcAngle',methods=['get']) +def calcAngle(): + hour = int(request.args.get('hour',0)) + minute = int(request.args.get('minute',0)) if (hour < 0 or minute < 0 or hour > 12 or minute > 60): print('Wrong input') if (hour == 12): From 86ba901cd17745498c2ff595f6663cf8daa92db8 Mon Sep 17 00:00:00 2001 From: SHAIK JAFAR SHARIF Date: Wed, 13 May 2020 01:50:18 +0530 Subject: [PATCH 14/14] Update main_test.py --- main_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main_test.py b/main_test.py index 7cf2077..4ce22dc 100644 --- a/main_test.py +++ b/main_test.py @@ -5,7 +5,7 @@ def test_clock_angle(): main.app.testing = True - client = main.app.test.test_client(3,0) + client = main.app.test.test_client() r = client.get('/clacAngle?hour=3&minute=0') assert r.status_code == 200