Skip to content
Project: Creating Functions to Register App Users
You are a junior developer working in a small start-up. Your managers have asked you to develop a new account registration system for a mobile app. The system must validate user input on the sign-up form before creating an account.
The previous junior developer wrote some helper functions that validate the name, email, and password. Use these functions to register users, store their data, and implement some error handling! These have been imported into the workspace for you. They will be a great help to you when registering the user, but first you have to understand what the function does! Inspect the docstrings of each of the helper functions: validate_name, validate_email and validate_password.
# Re-run this cell and examine the docstring of each function
from python_functions import validate_name, validate_email, validate_password, top_level_domains
print('validate_name\n')
print(validate_name.__doc__)
print('--------------------\n')
print('validate_email\n')
print(validate_email.__doc__)
print('--------------------\n')
print('validate_password\n')
print(validate_password.__doc__)
# The top level domains variable is used in validate_email to approve only certain email domains
print(top_level_domains)# Start coding here
# Use as many cells as you needfrom inspect import getsource as gs
print(gs(validate_name))print(gs(validate_email))print(gs(validate_password))1 - Create a user validation function
# Define the function
def validate_user(name, email, password):
"""Validate the user name, email and password.
Args:
name (string): Name that we're attempting to validate.
email (string): Email address that we're attempting to validate.
password (string): Password that we're attempting to validate.
Returns:
Boolean: Will return True if all validation checks pass
Raises ValueError if validation fails.
"""
# Build the functions logic
if validate_name(name) == False:
raise ValueError('Make sure name is greater than two characters and is a string data type.')
if validate_email(email) == False:
raise ValueError("Make sure email contains username greater than 1 character, an '@' symbol, and an allowed domain that is in the `top_level_domains` variable.")
if validate_password(password) == False:
raise ValueError('Make sure password includes a capital letter, a number between 0-9 and be greater than 8 characters.')
return True# Testing validate_user function #1
validate_user('Frankie', '[email protected]', 'Password123')# Testing validate_user function #2
validate_user('F', '[email protected]', 'Password123')Run cancelled
# Testing validate_user function #3
validate_user('Frankie', '[email protected]', 'Password123')Run cancelled
# Testing validate_user function #4
validate_user('Frankie', '[email protected]', 'password123')2 - Create a user registration function
# Define the function
def register_user(name, email, password):
"""Attempt to register the user if they pass validation.
Args:
name (string): Name of the user
email (string): Email address of the user
password (string): Password of the user
Returns:
Dict: Return a dictionary with the user details
Raises ValueError on missing arguments.
"""
if validate_user(name, email, password):
user = dict(name=name, email=email, password=password)
return user
return False