Coverage for sm / management / commands / add_testdata.py: 0%
31 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
1from django.core.management.base import BaseCommand
2from django.contrib.auth.models import User, Group
3from sm.models import GroupProfile
6class Command(BaseCommand):
7 help = "Create test data with a second group and add admin to multiple groups"
9 def handle(self, *args, **options):
10 dummy_user, created = User.objects.get_or_create(
11 username="dummyuser",
12 defaults={
13 "email": "dummyuser@example.com",
14 "is_staff": False,
15 },
16 )
17 if created:
18 dummy_user.set_password("dummyuser123")
19 dummy_user.save()
20 self.stdout.write(self.style.SUCCESS("Created user: dummyuser"))
22 dummy_group, created = Group.objects.get_or_create(name="dummygroup")
23 if created:
24 self.stdout.write(self.style.SUCCESS("Created group: dummygroup"))
26 profile, _ = GroupProfile.objects.get_or_create(
27 group=dummy_group,
28 defaults={
29 "max_users": 10,
30 },
31 )
32 profile.owner = dummy_user
33 profile.save()
35 lkern_group, _ = Group.objects.get_or_create(name="lkernAT")
36 GroupProfile.objects.get_or_create(
37 group=lkern_group,
38 defaults={"max_users": 10},
39 )
41 admin_user = User.objects.get(username="admin")
43 if lkern_group not in admin_user.groups.all():
44 admin_user.groups.add(lkern_group)
45 self.stdout.write(self.style.SUCCESS("Added admin to lkernAT"))
47 if dummy_group not in admin_user.groups.all():
48 admin_user.groups.add(dummy_group)
49 self.stdout.write(self.style.SUCCESS("Added admin to dummygroup"))
51 admin_groups = list(admin_user.groups.all())
52 group_names = [g.name for g in admin_groups]
53 self.stdout.write(
54 self.style.SUCCESS(
55 f"admin is now in {len(admin_groups)} groups: {group_names}"
56 )
57 )
59 owner = dummy_group.profile.owner
60 self.stdout.write(
61 self.style.SUCCESS(
62 f"dummyuser owns group: {dummy_group.name} (owner: {owner})"
63 )
64 )