fxa/tools/create_user.py (31 lines of code) (raw):
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.
import base64
import os
import re
import hmac
from fxa import core
from fxa import errors
FXA_ERROR_ACCOUNT_EXISTS = 101
def create_new_fxa_account(fxa_user_salt=None, account_server_url=None,
prefix="fxa", content_server_url=None):
if account_server_url and re.search('(dev)|(stage)', account_server_url):
if not fxa_user_salt:
fxa_user_salt = os.urandom(36)
else:
fxa_user_salt = base64.urlsafe_b64decode(fxa_user_salt)
password = hmac.new(fxa_user_salt, b"loadtest").hexdigest()
email = "%s-%s@restmail.net" % (prefix, password)
client = core.Client(server_url=account_server_url)
try:
client.create_account(email,
password=password,
preVerified=True)
except errors.ClientError as e:
if e.errno != FXA_ERROR_ACCOUNT_EXISTS:
raise
finally:
return email, password
else:
message = ("You are not using dev or stage (%s), make sure your FxA "
"test account exists: %s" % (account_server_url,
content_server_url))
raise ValueError(message)