Coverage for website/utils/management/commands/createreviewuser.py: 0.00%
30 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1import logging
2import secrets
4from django.conf import settings
5from django.contrib.auth import get_user_model
6from django.core.management import BaseCommand
8try:
9 from faker import Factory as FakerFactory
10except ImportError as error:
11 raise ValueError(
12 f"Have you installed the dev-requirements? Failed importing {error}"
13 ) from error
15_faker = FakerFactory.create("nl_NL")
16logger = logging.getLogger(__name__)
18_PASSWORD_CHARS = "abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789"
21class Command(BaseCommand):
22 """Command to create a user we can use to review."""
24 help = "Creates a user for the a review environment"
26 def add_arguments(self, parser):
27 parser.add_argument(
28 "--username",
29 dest="username",
30 default=None,
31 help="Specifies the username for the user.",
32 )
33 parser.add_argument(
34 "--password",
35 dest="password",
36 default=None,
37 help="Specifies the password for the user.",
38 )
40 def handle(self, *args, **options):
41 if not settings.DEBUG:
42 logger.info("Cannot create review user in production mode")
43 return
45 username = options.get("username")
46 password = options.get("password")
48 if username is None:
49 username = _faker.user_name()
50 if password is None:
51 password = "".join(secrets.choice(_PASSWORD_CHARS) for _ in range(15))
53 get_user_model().objects.create_superuser(
54 username=username,
55 email=f"{username}@example.com",
56 password=password,
57 first_name="Riley",
58 last_name="Review",
59 )
61 logger.info("Username: %s", username)
62 logger.info("Password: %s", password)