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

18 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-02-13 19:35 +0000

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

2 

3from uuid import UUID 

4 

5import django.db.models.deletion 

6from django.db import migrations, models 

7 

8 

9def migrate_littlepay_group_ids(apps, schema_editor): 

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

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

12 

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

14 group_id = flow.group_id 

15 if group_id: 

16 try: 

17 UUID(group_id, version=4) 

18 except ValueError as e: 

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

20 

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

22 littlepay_group.save() 

23 

24 

25class Migration(migrations.Migration): 

26 

27 dependencies = [ 

28 ("core", "0052_enrollmentgroup"), 

29 ("enrollment_littlepay", "0001_initial"), 

30 ] 

31 

32 operations = [ 

33 migrations.CreateModel( 

34 name="LittlepayGroup", 

35 fields=[ 

36 ( 

37 "enrollmentgroup_ptr", 

38 models.OneToOneField( 

39 auto_created=True, 

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

41 parent_link=True, 

42 primary_key=True, 

43 serialize=False, 

44 to="core.enrollmentgroup", 

45 ), 

46 ), 

47 ( 

48 "group_id", 

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

50 ), 

51 ], 

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

53 ), 

54 migrations.RunPython(migrate_littlepay_group_ids), 

55 ]