validate mobile number so that sms auth works

This commit is contained in:
stvnrlly
2022-10-28 14:42:25 -04:00
parent 19cdd9b052
commit 11d123051a
2 changed files with 17 additions and 8 deletions

View File

@@ -735,19 +735,28 @@ def populate_annual_billing_with_defaults(year, missing_services_only):
set_default_free_allowance_for_service(service, year)
def validate_mobile(ctx, param, value):
if (len(''.join(i for i in value if i.isdigit())) != 10):
raise click.BadParameter("mobile number must have 10 digits")
else:
return value
@notify_command(name='create-test-user')
@click.option('-n', '--name', required=True, prompt=True)
@click.option('-e', '--email', required=True, prompt=True)
@click.option('-m', '--mobile_number', required=True, prompt=True)
@click.option('-p', '--password', required=True, prompt=True, hide_input=True, confirmation_prompt=True)
@click.option('-e', '--email', required=True, prompt=True) # TODO: require valid email
@click.option('-m', '--mobile_number',
required=True, prompt=True, callback=validate_mobile)
@click.option('-p', '--password',
required=True, prompt=True, hide_input=True, confirmation_prompt=True)
@click.option('-a', '--auth_type', default="sms_auth")
@click.option('-s', '--state', default="active")
@click.option('-d', '--admin', default=False, type=bool)
def create_test_user(name,email, mobile_number, password, auth_type, state, admin):
def create_test_user(name, email, mobile_number, password, auth_type, state, admin):
if os.getenv('NOTIFY_ENVIRONMENT', '') not in ['development', 'test']:
current_app.logger.error('Can only be run in development')
return
data = {
'name': name,
'email_address': email,

View File

@@ -11,10 +11,10 @@ from tests.app.db import create_annual_billing, create_service
def test_create_test_user_command(notify_db_session, notify_api):
# number of users before adding ours
user_count = User.query.count()
# run the command
notify_api.test_cli_runner().invoke(
create_test_user, [
@@ -33,7 +33,7 @@ def test_create_test_user_command(notify_db_session, notify_api):
# that user should be the one we added
user = User.query.filter_by(
name = 'Fake Personson'
name='Fake Personson'
).first()
assert user.email_address == 'somebody@fake.gov'
assert user.auth_type == 'sms_auth'