diff --git a/cloudbuild.yaml b/cloudbuild.yaml new file mode 100644 index 0000000..b11cd8c --- /dev/null +++ b/cloudbuild.yaml @@ -0,0 +1,11 @@ +steps: +- name: 'gcr.io/cloud-builders/gcloud' + args: + - functions + - deploy + - calcAngle + - --source=https://source.developers.google.com/projects/data-engineer-practice-263910/repos/github_jafarshaik6_clocks + - --runtime + - python37 + - --trigger-http + - --allow-unauthenticated diff --git a/main.py b/main.py new file mode 100644 index 0000000..11d1915 --- /dev/null +++ b/main.py @@ -0,0 +1,32 @@ +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 + if (hour < 0 or minute < 0 or hour > 12 or minute > 60): + print('Wrong input') + 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 * (hour * 60 + minute) + minute_angle = 6 * minute + + # Find the difference between two angles + angle = abs(hour_angle - minute_angle) + + # Return the smaller angle of two + # possible angles + angle = str(int(min(360 - angle, angle))) + + return 'Angle is {}'.format(escape(angle)) diff --git a/main_test.py b/main_test.py new file mode 100644 index 0000000..ccbdf26 --- /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': 9,'minute':0} + req = Mock(get_json=Mock(return_value=data), args=data) + + # Call tested function + assert main.calc(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.calc(req) == 'Angle is {}'.format(angle) 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 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