def test_validate_email(self): data_provider = [ {"email": "1a2b3c4e", "result": False}, {"email": '*****@*****.**', "result": True}, ] for data in data_provider: result = validate_email(data['email']) self.assertEqual(result, data['result'])
def sign_up(request): """ Adds a new user to database Note: client's email is stored as username in database (NO explicit difference in email and username) :param request: contains first name, last name, email Id (username) and password :return: 400 if incorrect parameters are sent or email ID already exists :return: 201 successful """ firstname = request.POST.get('firstname', None) lastname = request.POST.get('lastname', None) username = parseaddr(request.POST.get('email', None))[1].lower() password = request.POST.get('password', None) if not firstname or not lastname or not username or not password: # incorrect request received error_message = "Missing parameters in request. Send firstname, lastname, email, password" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) if not validate_email(username): error_message = "Invalid email Id" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) if not validate_password(password): error_message = "Invalid Password" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) try: User.objects.get(username=username) error_message = "Email Id already exists" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) except User.DoesNotExist: user = User.objects.create_user(username, password=password) user.first_name = firstname user.last_name = lastname user.is_superuser = False user.is_staff = False user.save() try: to_list = [user.username] fullname = "{} {}".format(firstname, lastname) mail_subject = WELCOME_MAIL_SUBJECT.format(firstname) mail_content = WELCOME_MAIL_CONTENT.format(fullname) send_mail(mail_subject, mail_content, DEFAULT_EMAIL_SENDER, to_list, fail_silently=False) except SMTPException as e: error_message = "Registration successful. Unable to send a welcome email to user" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) except Exception as e: error_message = str(e) return Response(error_message, status=status.HTTP_400_BAD_REQUEST) success_message = "Successfully registered" return Response(success_message, status=status.HTTP_201_CREATED)
def sign_up(request): """ Adds a new user to database Note: client's email is stored as username in database (NO explicit difference in email and username) :param request: contains first name, last name, email Id (username) and password :return: 400 if incorrect parameters are sent or email ID already exists :return: 201 successful """ firstname = request.POST.get('firstname', None) lastname = request.POST.get('lastname', None) username = parseaddr(request.POST.get('email', None))[1].lower() password = request.POST.get('password', None) if not firstname or not lastname or not username or not password: # incorrect request received error_message = "Missing parameters in request. Send firstname, lastname, email, password" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) if not validate_email(username): error_message = "Invalid email Id" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) if not validate_password(password): error_message = "Invalid Password" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) try: User.objects.get(username=username) error_message = "Email Id already exists" return Response(error_message, status=status.HTTP_400_BAD_REQUEST) except User.DoesNotExist: user = User.objects.create_user(username, password=password) user.first_name = firstname user.last_name = lastname user.is_superuser = False user.is_staff = False user.save() except Exception as e: error_message = str(e) return Response(error_message, status=status.HTTP_400_BAD_REQUEST) success_message = "Successfully registered" return Response(success_message, status=status.HTTP_201_CREATED)