diff --git a/app/commands.py b/app/commands.py index 98afdaaf3..f0c1568b6 100644 --- a/app/commands.py +++ b/app/commands.py @@ -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, diff --git a/tests/app/test_commands.py b/tests/app/test_commands.py index 587da4dd8..b2b6abd14 100644 --- a/tests/app/test_commands.py +++ b/tests/app/test_commands.py @@ -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'