Code Duplication    Length = 60-66 lines in 7 locations

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

@@ 523-588 (lines=66) @@
520
            status=400
521
        )
522
523
    def test_api__undelete_workspace__ok_200__admin(self) -> None:
524
        """
525
        Test undelete workspace as admin
526
        """
527
        self.testapp.authorization = (
528
            'Basic',
529
            (
530
                '[email protected]',
531
                '[email protected]'
532
            )
533
        )
534
        dbsession = get_tm_session(self.session_factory, transaction.manager)
535
        admin = dbsession.query(models.User) \
536
            .filter(models.User.email == '[email protected]') \
537
            .one()
538
        uapi = UserApi(
539
            current_user=admin,
540
            session=dbsession,
541
            config=self.app_config,
542
        )
543
        gapi = GroupApi(
544
            current_user=admin,
545
            session=dbsession,
546
            config=self.app_config,
547
        )
548
        groups = [gapi.get_one_with_name('administrators')]
549
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups)  # nopep8
550
        workspace_api = WorkspaceApi(
551
            current_user=admin,
552
            session=dbsession,
553
            config=self.app_config,
554
            show_deleted=True,
555
        )
556
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
557
        workspace_api.delete(workspace, flush=True)
558
        transaction.commit()
559
        workspace_id = int(workspace.workspace_id)
560
        self.testapp.authorization = (
561
            'Basic',
562
            (
563
                '[email protected]',
564
                '[email protected]'
565
            )
566
        )
567
        # delete
568
        res = self.testapp.put(
569
            '/api/v2/workspaces/{}/undelete'.format(workspace_id),
570
            status=204
571
        )
572
        res = self.testapp.get(
573
            '/api/v2/workspaces/{}'.format(workspace_id),
574
            status=403
575
        )
576
        self.testapp.authorization = (
577
            'Basic',
578
            (
579
                '[email protected]',
580
                '[email protected]'
581
            )
582
        )
583
        res = self.testapp.get(
584
            '/api/v2/workspaces/{}'.format(workspace_id),
585
            status=200
586
        )
587
        workspace = res.json_body
588
        assert workspace['is_deleted'] is False
589
590
    def test_api__undelete_workspace__ok_200__manager_workspace_manager(self) -> None:
591
        """
@@ 714-774 (lines=61) @@
711
        workspace = res.json_body
712
        assert workspace['is_deleted'] is True
713
714
    def test_api__undelete_workspace__err_403__manager_reader(self) -> None:
715
        """
716
        Test undelete workspace as manager and reader of the workspace
717
        """
718
        self.testapp.authorization = (
719
            'Basic',
720
            (
721
                '[email protected]',
722
                '[email protected]'
723
            )
724
        )
725
        dbsession = get_tm_session(self.session_factory, transaction.manager)
726
        admin = dbsession.query(models.User) \
727
            .filter(models.User.email == '[email protected]') \
728
            .one()
729
        uapi = UserApi(
730
            current_user=admin,
731
            session=dbsession,
732
            config=self.app_config,
733
        )
734
        gapi = GroupApi(
735
            current_user=admin,
736
            session=dbsession,
737
            config=self.app_config,
738
        )
739
        groups = [gapi.get_one_with_name('trusted-users')]
740
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False)  # nopep8
741
        workspace_api = WorkspaceApi(
742
            current_user=admin,
743
            session=dbsession,
744
            config=self.app_config,
745
            show_deleted=True,
746
        )
747
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
748
        workspace_api.delete(workspace, flush=True)
749
        rapi = RoleApi(
750
            current_user=admin,
751
            session=dbsession,
752
            config=self.app_config,
753
        )
754
        rapi.create_one(user, workspace, UserRoleInWorkspace.READER, False)  # nopep8
755
        transaction.commit()
756
        workspace_id = int(workspace.workspace_id)
757
        self.testapp.authorization = (
758
            'Basic',
759
            (
760
                '[email protected]',
761
                '[email protected]'
762
            )
763
        )
764
        # delete
765
        res = self.testapp.put(
766
            '/api/v2/workspaces/{}/undelete'.format(workspace_id),
767
            status=403
768
        )
769
        res = self.testapp.get(
770
            '/api/v2/workspaces/{}'.format(workspace_id),
771
            status=200
772
        )
773
        workspace = res.json_body
774
        assert workspace['is_deleted'] is True
775
776
    def test_api__undelete_workspace__err_400__manager(self) -> None:
777
        """
@@ 652-712 (lines=61) @@
649
        workspace = res.json_body
650
        assert workspace['is_deleted'] is False
651
652
    def test_api__undelete_workspace__err_403__user_workspace_manager(self) -> None:
653
        """
654
        Test undelete workspace as simple user and workspace manager
655
        """
656
        self.testapp.authorization = (
657
            'Basic',
658
            (
659
                '[email protected]',
660
                '[email protected]'
661
            )
662
        )
663
        dbsession = get_tm_session(self.session_factory, transaction.manager)
664
        admin = dbsession.query(models.User) \
665
            .filter(models.User.email == '[email protected]') \
666
            .one()
667
        uapi = UserApi(
668
            current_user=admin,
669
            session=dbsession,
670
            config=self.app_config,
671
        )
672
        gapi = GroupApi(
673
            current_user=admin,
674
            session=dbsession,
675
            config=self.app_config,
676
        )
677
        groups = [gapi.get_one_with_name('users')]
678
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups)  # nopep8
679
        workspace_api = WorkspaceApi(
680
            current_user=admin,
681
            session=dbsession,
682
            config=self.app_config,
683
            show_deleted=True,
684
        )
685
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
686
        workspace_api.delete(workspace, flush=True)
687
        rapi = RoleApi(
688
            current_user=admin,
689
            session=dbsession,
690
            config=self.app_config,
691
        )
692
        rapi.create_one(user, workspace, UserRoleInWorkspace.WORKSPACE_MANAGER, False)  # nopep8
693
        transaction.commit()
694
        workspace_id = int(workspace.workspace_id)
695
        self.testapp.authorization = (
696
            'Basic',
697
            (
698
                '[email protected]',
699
                '[email protected]'
700
            )
701
        )
702
        # delete
703
        res = self.testapp.put(
704
            '/api/v2/workspaces/{}/undelete'.format(workspace_id),
705
            status=403
706
        )
707
        res = self.testapp.get(
708
            '/api/v2/workspaces/{}'.format(workspace_id),
709
            status=200
710
        )
711
        workspace = res.json_body
712
        assert workspace['is_deleted'] is True
713
714
    def test_api__undelete_workspace__err_403__manager_reader(self) -> None:
715
        """
@@ 590-650 (lines=61) @@
587
        workspace = res.json_body
588
        assert workspace['is_deleted'] is False
589
590
    def test_api__undelete_workspace__ok_200__manager_workspace_manager(self) -> None:
591
        """
592
        Test undelete workspace as global manager and workspace manager
593
        """
594
        self.testapp.authorization = (
595
            'Basic',
596
            (
597
                '[email protected]',
598
                '[email protected]'
599
            )
600
        )
601
        dbsession = get_tm_session(self.session_factory, transaction.manager)
602
        admin = dbsession.query(models.User) \
603
            .filter(models.User.email == '[email protected]') \
604
            .one()
605
        uapi = UserApi(
606
            current_user=admin,
607
            session=dbsession,
608
            config=self.app_config,
609
        )
610
        gapi = GroupApi(
611
            current_user=admin,
612
            session=dbsession,
613
            config=self.app_config,
614
        )
615
        groups = [gapi.get_one_with_name('trusted-users')]
616
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups)  # nopep8
617
        workspace_api = WorkspaceApi(
618
            current_user=admin,
619
            session=dbsession,
620
            config=self.app_config,
621
            show_deleted=True,
622
        )
623
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
624
        workspace_api.delete(workspace, flush=True)
625
        rapi = RoleApi(
626
            current_user=admin,
627
            session=dbsession,
628
            config=self.app_config,
629
        )
630
        rapi.create_one(user, workspace, UserRoleInWorkspace.WORKSPACE_MANAGER, False)  # nopep8
631
        transaction.commit()
632
        workspace_id = int(workspace.workspace_id)
633
        self.testapp.authorization = (
634
            'Basic',
635
            (
636
                '[email protected]',
637
                '[email protected]'
638
            )
639
        )
640
        # delete
641
        res = self.testapp.put(
642
            '/api/v2/workspaces/{}/undelete'.format(workspace_id),
643
            status=204
644
        )
645
        res = self.testapp.get(
646
            '/api/v2/workspaces/{}'.format(workspace_id),
647
            status=200
648
        )
649
        workspace = res.json_body
650
        assert workspace['is_deleted'] is False
651
652
    def test_api__undelete_workspace__err_403__user_workspace_manager(self) -> None:
653
        """
@@ 411-470 (lines=60) @@
408
        workspace = res.json_body
409
        assert workspace['is_deleted'] is False
410
411
    def test_api__delete_workspace__err_403__manager_reader(self) -> None:
412
        """
413
        Test delete workspace as manager and reader of the workspace
414
        """
415
        self.testapp.authorization = (
416
            'Basic',
417
            (
418
                '[email protected]',
419
                '[email protected]'
420
            )
421
        )
422
        dbsession = get_tm_session(self.session_factory, transaction.manager)
423
        admin = dbsession.query(models.User) \
424
            .filter(models.User.email == '[email protected]') \
425
            .one()
426
        uapi = UserApi(
427
            current_user=admin,
428
            session=dbsession,
429
            config=self.app_config,
430
        )
431
        gapi = GroupApi(
432
            current_user=admin,
433
            session=dbsession,
434
            config=self.app_config,
435
        )
436
        groups = [gapi.get_one_with_name('trusted-users')]
437
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False)  # nopep8
438
        workspace_api = WorkspaceApi(
439
            current_user=admin,
440
            session=dbsession,
441
            config=self.app_config,
442
            show_deleted=True,
443
        )
444
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
445
        rapi = RoleApi(
446
            current_user=admin,
447
            session=dbsession,
448
            config=self.app_config,
449
        )
450
        rapi.create_one(user, workspace, UserRoleInWorkspace.READER, False)  # nopep8
451
        transaction.commit()
452
        workspace_id = int(workspace.workspace_id)
453
        self.testapp.authorization = (
454
            'Basic',
455
            (
456
                '[email protected]',
457
                '[email protected]'
458
            )
459
        )
460
        # delete
461
        res = self.testapp.put(
462
            '/api/v2/workspaces/{}/delete'.format(workspace_id),
463
            status=403
464
        )
465
        res = self.testapp.get(
466
            '/api/v2/workspaces/{}'.format(workspace_id),
467
            status=200
468
        )
469
        workspace = res.json_body
470
        assert workspace['is_deleted'] is False
471
472
    def test_api__delete_workspace__err_400__manager(self) -> None:
473
        """
@@ 350-409 (lines=60) @@
347
        workspace = res.json_body
348
        assert workspace['is_deleted'] is True
349
350
    def test_api__delete_workspace__err_403__user_workspace_manager(self) -> None:
351
        """
352
        Test delete workspace as simple user and workspace manager
353
        """
354
        self.testapp.authorization = (
355
            'Basic',
356
            (
357
                '[email protected]',
358
                '[email protected]'
359
            )
360
        )
361
        dbsession = get_tm_session(self.session_factory, transaction.manager)
362
        admin = dbsession.query(models.User) \
363
            .filter(models.User.email == '[email protected]') \
364
            .one()
365
        uapi = UserApi(
366
            current_user=admin,
367
            session=dbsession,
368
            config=self.app_config,
369
        )
370
        gapi = GroupApi(
371
            current_user=admin,
372
            session=dbsession,
373
            config=self.app_config,
374
        )
375
        groups = [gapi.get_one_with_name('users')]
376
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups)  # nopep8
377
        workspace_api = WorkspaceApi(
378
            current_user=admin,
379
            session=dbsession,
380
            config=self.app_config,
381
            show_deleted=True,
382
        )
383
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
384
        rapi = RoleApi(
385
            current_user=admin,
386
            session=dbsession,
387
            config=self.app_config,
388
        )
389
        rapi.create_one(user, workspace, UserRoleInWorkspace.WORKSPACE_MANAGER, False)  # nopep8
390
        transaction.commit()
391
        workspace_id = int(workspace.workspace_id)
392
        self.testapp.authorization = (
393
            'Basic',
394
            (
395
                '[email protected]',
396
                '[email protected]'
397
            )
398
        )
399
        # delete
400
        res = self.testapp.put(
401
            '/api/v2/workspaces/{}/delete'.format(workspace_id),
402
            status=403
403
        )
404
        res = self.testapp.get(
405
            '/api/v2/workspaces/{}'.format(workspace_id),
406
            status=200
407
        )
408
        workspace = res.json_body
409
        assert workspace['is_deleted'] is False
410
411
    def test_api__delete_workspace__err_403__manager_reader(self) -> None:
412
        """
@@ 289-348 (lines=60) @@
286
        workspace = res.json_body
287
        assert workspace['is_deleted'] is True
288
289
    def test_api__delete_workspace__ok_200__manager_workspace_manager(self) -> None:
290
        """
291
        Test delete workspace as global manager and workspace manager
292
        """
293
        self.testapp.authorization = (
294
            'Basic',
295
            (
296
                '[email protected]',
297
                '[email protected]'
298
            )
299
        )
300
        dbsession = get_tm_session(self.session_factory, transaction.manager)
301
        admin = dbsession.query(models.User) \
302
            .filter(models.User.email == '[email protected]') \
303
            .one()
304
        uapi = UserApi(
305
            current_user=admin,
306
            session=dbsession,
307
            config=self.app_config,
308
        )
309
        gapi = GroupApi(
310
            current_user=admin,
311
            session=dbsession,
312
            config=self.app_config,
313
        )
314
        groups = [gapi.get_one_with_name('trusted-users')]
315
        user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups)  # nopep8
316
        workspace_api = WorkspaceApi(
317
            current_user=admin,
318
            session=dbsession,
319
            config=self.app_config,
320
            show_deleted=True,
321
        )
322
        workspace = workspace_api.create_workspace('test', save_now=True)  # nopep8
323
        rapi = RoleApi(
324
            current_user=admin,
325
            session=dbsession,
326
            config=self.app_config,
327
        )
328
        rapi.create_one(user, workspace, UserRoleInWorkspace.WORKSPACE_MANAGER, False)  # nopep8
329
        transaction.commit()
330
        workspace_id = int(workspace.workspace_id)
331
        self.testapp.authorization = (
332
            'Basic',
333
            (
334
                '[email protected]',
335
                '[email protected]'
336
            )
337
        )
338
        # delete
339
        res = self.testapp.put(
340
            '/api/v2/workspaces/{}/delete'.format(workspace_id),
341
            status=204
342
        )
343
        res = self.testapp.get(
344
            '/api/v2/workspaces/{}'.format(workspace_id),
345
            status=200
346
        )
347
        workspace = res.json_body
348
        assert workspace['is_deleted'] is True
349
350
    def test_api__delete_workspace__err_403__user_workspace_manager(self) -> None:
351
        """