def handle(self, *args, **options): dump_file_path = options["dump_file"] owner_email = options["owner_email"] overwrite = options["overwrite"] data = json.loads(open(dump_file_path, 'r').read()) try: with transaction.atomic(): if overwrite: receivers_back = signals.post_delete.receivers signals.post_delete.receivers = [] try: proj = Project.objects.get( slug=data.get("slug", "not a slug")) proj.tasks.all().delete() proj.user_stories.all().delete() proj.issues.all().delete() proj.memberships.all().delete() proj.roles.all().delete() proj.delete() except Project.DoesNotExist: pass signals.post_delete.receivers = receivers_back user = User.objects.get(email=owner_email) services.store_project_from_dict(data, user) except err.TaigaImportError as e: if e.project: e.project.delete_related_content() e.project.delete() print("ERROR:", end=" ") print(e.message) print(json.dumps(e.errors, indent=4))
def handle(self, *args, **options): dump_file_path = options["dump_file"] owner_email = options["owner_email"] overwrite = options["overwrite"] data = json.loads(open(dump_file_path, 'r').read()) try: with transaction.atomic(): if overwrite: receivers_back = signals.post_delete.receivers signals.post_delete.receivers = [] try: proj = Project.objects.get(slug=data.get("slug", "not a slug")) proj.tasks.all().delete() proj.user_stories.all().delete() proj.issues.all().delete() proj.memberships.all().delete() proj.roles.all().delete() proj.delete() except Project.DoesNotExist: pass signals.post_delete.receivers = receivers_back user = User.objects.get(email=owner_email) services.store_project_from_dict(data, user) except err.TaigaImportError as e: if e.project: e.project.delete_related_content() e.project.delete() print("ERROR:", end=" ") print(e.message) print(json.dumps(e.errors, indent=4))
def test_import_epic_with_user_stories(client): project = f.ProjectFactory() project.default_points = f.PointsFactory.create(project=project) project.default_issue_type = f.IssueTypeFactory.create(project=project) project.default_issue_status = f.IssueStatusFactory.create(project=project) project.default_epic_status = f.EpicStatusFactory.create(project=project) project.default_us_status = f.UserStoryStatusFactory.create( project=project) project.default_task_status = f.TaskStatusFactory.create(project=project) project.default_priority = f.PriorityFactory.create(project=project) project.default_severity = f.SeverityFactory.create(project=project) epic = f.EpicFactory.create(subject="test epic export", project=project, status=project.default_epic_status) user_story = f.UserStoryFactory.create(project=project, status=project.default_us_status, milestone=None) f.RelatedUserStory.create(epic=epic, user_story=user_story, order=55) output = io.BytesIO() render_project(user_story.project, output) project_data = json.loads(output.getvalue()) epic.project.delete() project = store_project_from_dict(project_data) assert project.epics.count() == 1 assert project.epics.first().ref == epic.ref assert project.epics.first().user_stories.count() == 1 related_userstory = project.epics.first().relateduserstory_set.first() assert related_userstory.user_story.ref == user_story.ref assert related_userstory.order == 55 assert related_userstory.epic.ref == epic.ref
def test_import_epic_with_user_stories(client): project = f.ProjectFactory() project.default_points = f.PointsFactory.create(project=project) project.default_issue_type = f.IssueTypeFactory.create(project=project) project.default_issue_status = f.IssueStatusFactory.create(project=project) project.default_epic_status = f.EpicStatusFactory.create(project=project) project.default_us_status = f.UserStoryStatusFactory.create(project=project) project.default_task_status = f.TaskStatusFactory.create(project=project) project.default_priority = f.PriorityFactory.create(project=project) project.default_severity = f.SeverityFactory.create(project=project) epic = f.EpicFactory.create(subject="test epic export", project=project, status=project.default_epic_status) user_story = f.UserStoryFactory.create(project=project, status=project.default_us_status, milestone=None) f.RelatedUserStory.create(epic=epic, user_story=user_story, order=55) output = io.BytesIO() render_project(user_story.project, output) project_data = json.loads(output.getvalue()) epic.project.delete() project = store_project_from_dict(project_data) assert project.epics.count() == 1 assert project.epics.first().ref == epic.ref assert project.epics.first().user_stories.count() == 1 related_userstory = project.epics.first().relateduserstory_set.first() assert related_userstory.user_story.ref == user_story.ref assert related_userstory.order == 55 assert related_userstory.epic.ref == epic.ref