def test_hours_service_post(self): mock_response = { "foo":"bar", } responses.add(responses.POST, "http://hoursservice.staging.tangentmicroservices.com/api/v1/entry/", body=json.dumps(mock_response), content_type="application/json", status=200) data = { "user": "******", "project_id": "43", "project_task_id": "57", "time": "October 1, 2015 at 09:34PM", "entered_or_exited": "exited", "auth_token" : "abcdef123456" } result = IfThisThenThatHelpers.make_hours_post(data, 8) from requests import Response assert isinstance(result, Response) assert result.json() == mock_response assert result is not None, "Result Empty"
def create(self, request): data = request.data #Save Record icr = IncomingRequest() icr.payload = json.dumps(data) # store payload as string #Get the User if 'user' in request.data: icr.user = data['user'] icr.source = 'IT' icr.incoming_url = request.META.get('HTTP_REFFERER') icr.save() if not data or data is None: return Response({'message': 'ERROR', 'description': 'No data is set'}, status=400) if data.get('entered_or_exited', None) == 'entered': IfThisThenThatHelpers.post_to_hipchat(icr.payload_as_json) # If exiting an area find corresponding entry time if data.get('entered_or_exited', None) == "exited": #if IncomingRequest.objects.filter(user=icr.user).order_by('-id')[1].exists(): try: entered_icr = IncomingRequest.objects.filter(user=icr.user).order_by('-id')[1] except IndexError: data = {'message': 'ERROR', 'description': 'could not find a matching enter entry'} return Response(data, status=200, content_type='application/json') # get the total number of hours entered_data = entered_icr.payload_as_json exited_data = icr.payload_as_json hours = IfThisThenThatHelpers.get_hours(entered_data, exited_data) if hours > 0 and hours <= 24: token = entered_data["auth_token"] # Make the Hours Request response = IfThisThenThatHelpers.make_hours_post(entered_data, hours) IfThisThenThatHelpers.post_to_hipchat(icr.payload_as_json) hipchat_speak("{} hours logged" . format (hours)) else: message = "Invalid hours amount encountered: {} hours. Please capture your hours manually" . format (hours) hipchat_speak(message) # Check the response from hours return Response({'message': 'OK', 'data': data}, status=200)