Coverage for app/venv/lib/python3.14/site-packages/weblate/auth/migrations/0003_fixup_teams.py: 56%

19 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 07:15 +0000

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4 

5# Generated by Django 4.2.9 on 2024-02-19 09:08 

6 

7from django.db import migrations 

8 

9from weblate.auth.data import GROUPS 

10 

11 

12def migrate_teams(apps, schema_editor) -> None: 

13 Group = apps.get_model("weblate_auth", "Group") 

14 for name, _roles, _project_selection in GROUPS: 

15 offset = 2 

16 instances = list( 

17 Group.objects.filter( 

18 name=name, 

19 internal=True, 

20 defining_project=None, 

21 ) 

22 ) 

23 while len(instances) > 1: 23 ↛ 24line 23 didn't jump to line 24 because the condition on line 23 was never true

24 instance = instances.pop() 

25 newname = f"{name} ({offset})" 

26 while Group.objects.filter( 

27 name=newname, internal=True, defining_project=None 

28 ).exists(): 

29 offset += 1 

30 newname = f"{name} ({offset})" 

31 

32 print( 

33 f"Found duplicate team<{instance.pk}>: {name!r}, renaming to {newname!r}" 

34 ) 

35 instance.name = newname 

36 instance.save(update_fields=["name"]) 

37 

38 

39class Migration(migrations.Migration): 

40 dependencies = [ 

41 ("weblate_auth", "0002_squashed_weblate_5"), 

42 ] 

43 

44 operations = [ 

45 migrations.RunPython(migrate_teams, migrations.RunPython.noop, elidable=True), 

46 ]