Coverage for app/venv/lib/python3.14/site-packages/weblate/trans/management/commands/import_projectbackup.py: 0%

20 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 

4from __future__ import annotations 

5 

6from typing import TYPE_CHECKING 

7 

8from weblate.auth.models import User 

9from weblate.trans.backups import ProjectBackup 

10from weblate.utils.management.base import BaseCommand 

11 

12if TYPE_CHECKING: 

13 from django.core.management.base import CommandParser 

14 

15 

16class Command(BaseCommand): 

17 """Command for importing project backup into Weblate.""" 

18 

19 help = "imports project backup" 

20 

21 def add_arguments(self, parser: CommandParser) -> None: 

22 super().add_arguments(parser) 

23 parser.add_argument("project_name", help="Project name") 

24 parser.add_argument("project_slug", help="Project slug") 

25 parser.add_argument("username", help="Username doing import") 

26 parser.add_argument("filename", help="Path to project backup") 

27 

28 def handle( 

29 self, 

30 project_name: str, 

31 project_slug: str, 

32 username: str, 

33 filename: str, 

34 **options, 

35 ) -> None: 

36 user = User.objects.get(username=username) 

37 restore = ProjectBackup(filename) 

38 

39 restore.validate() 

40 

41 restore.restore(project_name=project_name, project_slug=project_slug, user=user)