Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
@@ -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
32 changes: 32 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -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))
20 changes: 20 additions & 0 deletions main_test.py
Original file line number Diff line number Diff line change
@@ -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)
1 change: 1 addition & 0 deletions requirements-test.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pytest==5.3.2
2 changes: 2 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
flask==1.1.2
google-cloud-error-reporting==0.33.0