def process_view(self, request, view_func, view_args, view_kwargs): # If user is authenticated then it's an admin user if request.user.is_authenticated(): return if request.path is '/v1/messages': message = None phone_number = None if request.POST.get('text'): message = request.POST.get('text') phone_number = request.POST.get('phoneNumber') else: # Putting a random phone, will change once we get correct format of message phone_number = '+91 7834671232' message = request.body message_args = sms_parser.sms_parser(message=message) auth_rule = message_args['auth_rule'] if 'open' in auth_rule: request.user['role'] = 'Customer' request.user['phone_number'] = phone_number return elif 'sa' in auth_rule: try: common.ServiceAdvisor.objects.get(phone_number=phone_number) request.user['role'] = 'SA' request.user['phone_number'] = phone_number except common.ServiceAdvisor.DoesNotExist: raise HttpResponseBadRequest() elif 'customer' in auth_rule: try: object = common.UserProfile.objects.get(phone_number=phone_number) request.user['role'] = 'Customer' request.user['phone_number'] = phone_number except common.UserProfile.DoesNotExist: raise HttpResponseBadRequest() return
def test_invalid_keyword_2(self): with self.assertRaises(sms_parser.InvalidMessage): mock_client_sms = "" sms_parser.sms_parser(message=mock_client_sms)
def test_invalid_message_format(self): with self.assertRaises(sms_parser.InvalidFormat): mock_client_sms = "GCP_REG [email protected]" sms_parser.sms_parser(message=mock_client_sms)
def test_invalid_keyword(self): with self.assertRaises(sms_parser.InvalidKeyWord): mock_client_sms = "ANNONYM [email protected] Test User" sms_parser.sms_parser(message=mock_client_sms)
def test_sms_parse(self): mock_client_sms = "GCP_REG [email protected] Test User" test_args = sms_parser.sms_parser(message=mock_client_sms) self.assertEqual(test_args['keyword'], 'gcp_reg') self.assertEqual(test_args['email_id'], '*****@*****.**') self.assertEqual(test_args['name'], 'Test User')