Coverage for benefits/enrollment_littlepay/migrations/0002_littlepaygroup.py: 50%

18 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-07-15 17:49 +0000

1# Generated by Django 5.1.7 on 2025-07-12 03:28 

2 

3from uuid import UUID 

4import django.db.models.deletion 

5from django.db import migrations, models 

6 

7 

8def migrate_littlepay_group_ids(apps, schema_editor): 

9 LittlepayGroup = apps.get_model("enrollment_littlepay", "LittlepayGroup") 

10 EnrollmentFlow = apps.get_model("core", "EnrollmentFlow") 

11 

12 for flow in EnrollmentFlow.objects.all(): 12 ↛ 13line 12 didn't jump to line 13 because the loop on line 12 never started

13 group_id = flow.group_id 

14 if group_id: 

15 try: 

16 UUID(group_id, version=4) 

17 except ValueError as e: 

18 raise ValueError(f"Invalid group_id {group_id} on flow {flow}") from e 

19 

20 littlepay_group = LittlepayGroup.objects.create(group_id=group_id, enrollment_flow=flow) 

21 littlepay_group.save() 

22 

23 

24class Migration(migrations.Migration): 

25 

26 dependencies = [ 

27 ("core", "0052_enrollmentgroup"), 

28 ("enrollment_littlepay", "0001_initial"), 

29 ] 

30 

31 operations = [ 

32 migrations.CreateModel( 

33 name="LittlepayGroup", 

34 fields=[ 

35 ( 

36 "enrollmentgroup_ptr", 

37 models.OneToOneField( 

38 auto_created=True, 

39 on_delete=django.db.models.deletion.CASCADE, 

40 parent_link=True, 

41 primary_key=True, 

42 serialize=False, 

43 to="core.enrollmentgroup", 

44 ), 

45 ), 

46 ( 

47 "group_id", 

48 models.UUIDField(blank=True, default=None, help_text="The ID of the Littlepay group for user enrollment."), 

49 ), 

50 ], 

51 bases=("core.enrollmentgroup",), 

52 ), 

53 migrations.RunPython(migrate_littlepay_group_ids), 

54 ]