Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-27 07:41:41

0001 """
0002 Django management command to create or update the testuser account for testing.
0003 Requires SWF_TESTUSER_PASSWORD environment variable to be set.
0004 """
0005 
0006 import os
0007 from django.core.management.base import BaseCommand, CommandError
0008 from django.contrib.auth.models import User
0009 
0010 
0011 class Command(BaseCommand):
0012     help = 'Create or update testuser account for automated testing'
0013 
0014     def add_arguments(self, parser):
0015         parser.add_argument(
0016             '--password',
0017             type=str,
0018             help='Override password (default: use SWF_TESTUSER_PASSWORD env var)',
0019         )
0020 
0021     def handle(self, *args, **options):
0022         username = 'testuser'
0023         
0024         # Get password from argument or environment variable
0025         password = options.get('password') or os.getenv('SWF_TESTUSER_PASSWORD')
0026         
0027         if not password:
0028             raise CommandError(
0029                 'Password required. Either:\n'
0030                 '  1. Set SWF_TESTUSER_PASSWORD environment variable, or\n'
0031                 '  2. Use --password argument\n'
0032                 'Example: export SWF_TESTUSER_PASSWORD="your_secure_password"'
0033             )
0034         
0035         try:
0036             # Try to get existing user
0037             user = User.objects.get(username=username)
0038             user.set_password(password)
0039             user.save()
0040             self.stdout.write(
0041                 self.style.SUCCESS(f'Updated password for existing user "{username}"')
0042             )
0043         except User.DoesNotExist:
0044             # Create new user
0045             user = User.objects.create_user(
0046                 username=username,
0047                 password=password,
0048                 email='testuser@example.com'
0049             )
0050             self.stdout.write(
0051                 self.style.SUCCESS(f'Created new user "{username}"')
0052             )
0053         
0054         self.stdout.write(f'Username: {username}')
0055         password_source = "command argument" if options.get('password') else "SWF_TESTUSER_PASSWORD environment variable"
0056         self.stdout.write(f'Password source: {password_source}')