Code Duplication    Length = 63-77 lines in 3 locations

backend/tracim_backend/tests/functional/test_workspaces.py 3 locations

@@ 668-744 (lines=77) @@
665
        assert 'code' in res.json.keys()
666
        assert res.json_body['code'] == error.WORKSPACE_NOT_FOUND
667
668
    def test_api__undelete_workspace__ok_200__admin(self) -> None:
669
        """
670
        Test undelete workspace as admin
671
        """
672
        self.testapp.authorization = (
673
            'Basic',
674
            (
675
                '[email protected]',
676
                '[email protected]'
677
            )
678
        )
679
        dbsession = get_tm_session(self.session_factory, transaction.manager)
680
        admin = dbsession.query(models.User) \
681
            .filter(models.User.email == '[email protected]') \
682
            .one()
683
        uapi = UserApi(
684
            current_user=admin,
685
            session=dbsession,
686
            config=self.app_config,
687
        )
688
        gapi = GroupApi(
689
            current_user=admin,
690
            session=dbsession,
691
            config=self.app_config,
692
        )
693
        groups = [gapi.get_one_with_name('trusted-users')]
694
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups)  # nopep8
695
        workspace_api = WorkspaceApi(
696
            current_user=admin,
697
            session=dbsession,
698
            config=self.app_config,
699
            show_deleted=True,
700
        )
701
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
702
        workspace_api.delete(workspace, flush=True)
703
        transaction.commit()
704
        workspace_id = int(workspace.workspace_id)
705
        # undelete
706
        self.testapp.authorization = (
707
            'Basic',
708
            (
709
                '[email protected]',
710
                '[email protected]'
711
            )
712
        )
713
        res = self.testapp.put(
714
            '/api/v2/workspaces/{}/trashed/restore'.format(workspace_id),
715
            status=204
716
        )
717
        self.testapp.authorization = (
718
            'Basic',
719
            (
720
                '[email protected]',
721
                '[email protected]'
722
            )
723
        )
724
        res = self.testapp.get(
725
            '/api/v2/workspaces/{}'.format(workspace_id),
726
            status=400
727
        )
728
        assert isinstance(res.json, dict)
729
        assert 'code' in res.json.keys()
730
        assert res.json_body['code'] == error.WORKSPACE_NOT_FOUND  # nopep8
731
732
        self.testapp.authorization = (
733
            'Basic',
734
            (
735
                '[email protected]',
736
                '[email protected]'
737
            )
738
        )
739
        res = self.testapp.get(
740
            '/api/v2/workspaces/{}'.format(workspace_id),
741
            status=200
742
        )
743
        workspace = res.json_body
744
        assert workspace['is_deleted'] is False
745
746
    def test_api__undelete_workspace__ok_200__manager_workspace_manager(self) -> None:
747
        """
@@ 349-423 (lines=75) @@
346
        assert 'code' in res.json.keys()
347
        assert res.json_body['code'] == error.GENERIC_SCHEMA_VALIDATION_ERROR  # nopep8
348
349
    def test_api__delete_workspace__ok_200__admin(self) -> None:
350
        """
351
        Test delete workspace as admin
352
        """
353
        self.testapp.authorization = (
354
            'Basic',
355
            (
356
                '[email protected]',
357
                '[email protected]'
358
            )
359
        )
360
        dbsession = get_tm_session(self.session_factory, transaction.manager)
361
        admin = dbsession.query(models.User) \
362
            .filter(models.User.email == '[email protected]') \
363
            .one()
364
        uapi = UserApi(
365
            current_user=admin,
366
            session=dbsession,
367
            config=self.app_config,
368
        )
369
        gapi = GroupApi(
370
            current_user=admin,
371
            session=dbsession,
372
            config=self.app_config,
373
        )
374
        groups = [gapi.get_one_with_name('trusted-users')]
375
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups)  # nopep8
376
        workspace_api = WorkspaceApi(
377
            current_user=admin,
378
            session=dbsession,
379
            config=self.app_config,
380
            show_deleted=True,
381
        )
382
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
383
        transaction.commit()
384
        workspace_id = int(workspace.workspace_id)
385
        self.testapp.authorization = (
386
            'Basic',
387
            (
388
                '[email protected]',
389
                '[email protected]'
390
            )
391
        )
392
        # delete
393
        res = self.testapp.put(
394
            '/api/v2/workspaces/{}/trashed'.format(workspace_id),
395
            status=204
396
        )
397
        self.testapp.authorization = (
398
            'Basic',
399
            (
400
                '[email protected]',
401
                '[email protected]'
402
            )
403
        )
404
        res = self.testapp.get(
405
            '/api/v2/workspaces/{}'.format(workspace_id),
406
            status=400
407
        )
408
        assert isinstance(res.json, dict)
409
        assert 'code' in res.json.keys()
410
        assert res.json_body['code'] == error.WORKSPACE_NOT_FOUND  # nopep8
411
        self.testapp.authorization = (
412
            'Basic',
413
            (
414
                '[email protected]',
415
                '[email protected]'
416
            )
417
        )
418
        res = self.testapp.get(
419
            '/api/v2/workspaces/{}'.format(workspace_id),
420
            status=200
421
        )
422
        workspace = res.json_body
423
        assert workspace['is_deleted'] is True
424
425
    def test_api__delete_workspace__ok_200__manager_workspace_manager(self) -> None:
426
        """
@@ 550-612 (lines=63) @@
547
        workspace = res.json_body
548
        assert workspace['is_deleted'] is False
549
550
    def test_api__delete_workspace__err_403__manager_reader(self) -> None:
551
        """
552
        Test delete workspace as manager and reader of the workspace
553
        """
554
        self.testapp.authorization = (
555
            'Basic',
556
            (
557
                '[email protected]',
558
                '[email protected]'
559
            )
560
        )
561
        dbsession = get_tm_session(self.session_factory, transaction.manager)
562
        admin = dbsession.query(models.User) \
563
            .filter(models.User.email == '[email protected]') \
564
            .one()
565
        uapi = UserApi(
566
            current_user=admin,
567
            session=dbsession,
568
            config=self.app_config,
569
        )
570
        gapi = GroupApi(
571
            current_user=admin,
572
            session=dbsession,
573
            config=self.app_config,
574
        )
575
        groups = [gapi.get_one_with_name('trusted-users')]
576
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False)  # nopep8
577
        workspace_api = WorkspaceApi(
578
            current_user=admin,
579
            session=dbsession,
580
            config=self.app_config,
581
            show_deleted=True,
582
        )
583
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
584
        rapi = RoleApi(
585
            current_user=admin,
586
            session=dbsession,
587
            config=self.app_config,
588
        )
589
        rapi.create_one(user, workspace, UserRoleInWorkspace.READER, False)  # nopep8
590
        transaction.commit()
591
        workspace_id = int(workspace.workspace_id)
592
        self.testapp.authorization = (
593
            'Basic',
594
            (
595
                '[email protected]',
596
                '[email protected]'
597
            )
598
        )
599
        # delete
600
        res = self.testapp.put(
601
            '/api/v2/workspaces/{}/trashed'.format(workspace_id),
602
            status=403
603
        )
604
        assert isinstance(res.json, dict)
605
        assert 'code' in res.json.keys()
606
        assert res.json_body['code'] == error.INSUFFICIENT_USER_PROFILE
607
        res = self.testapp.get(
608
            '/api/v2/workspaces/{}'.format(workspace_id),
609
            status=200
610
        )
611
        workspace = res.json_body
612
        assert workspace['is_deleted'] is False
613
614
    def test_api__delete_workspace__err_400__manager(self) -> None:
615
        """