@@ 746-806 (lines=61) @@ | ||
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 | """ |
|
748 | Test undelete workspace as global manager and workspace manager |
|
749 | """ |
|
750 | self.testapp.authorization = ( |
|
751 | 'Basic', |
|
752 | ( |
|
753 | '[email protected]', |
|
754 | '[email protected]' |
|
755 | ) |
|
756 | ) |
|
757 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
758 | admin = dbsession.query(models.User) \ |
|
759 | .filter(models.User.email == '[email protected]') \ |
|
760 | .one() |
|
761 | uapi = UserApi( |
|
762 | current_user=admin, |
|
763 | session=dbsession, |
|
764 | config=self.app_config, |
|
765 | ) |
|
766 | gapi = GroupApi( |
|
767 | current_user=admin, |
|
768 | session=dbsession, |
|
769 | config=self.app_config, |
|
770 | ) |
|
771 | groups = [gapi.get_one_with_name('trusted-users')] |
|
772 | user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups) # nopep8 |
|
773 | workspace_api = WorkspaceApi( |
|
774 | current_user=admin, |
|
775 | session=dbsession, |
|
776 | config=self.app_config, |
|
777 | show_deleted=True, |
|
778 | ) |
|
779 | workspace = workspace_api.create_workspace('test', save_now=True) # nopep8 |
|
780 | workspace_api.delete(workspace, flush=True) |
|
781 | rapi = RoleApi( |
|
782 | current_user=admin, |
|
783 | session=dbsession, |
|
784 | config=self.app_config, |
|
785 | ) |
|
786 | rapi.create_one(user, workspace, UserRoleInWorkspace.WORKSPACE_MANAGER, False) # nopep8 |
|
787 | transaction.commit() |
|
788 | workspace_id = int(workspace.workspace_id) |
|
789 | self.testapp.authorization = ( |
|
790 | 'Basic', |
|
791 | ( |
|
792 | '[email protected]', |
|
793 | '[email protected]' |
|
794 | ) |
|
795 | ) |
|
796 | # delete |
|
797 | res = self.testapp.put( |
|
798 | '/api/v2/workspaces/{}/trashed/restore'.format(workspace_id), |
|
799 | status=204 |
|
800 | ) |
|
801 | res = self.testapp.get( |
|
802 | '/api/v2/workspaces/{}'.format(workspace_id), |
|
803 | status=200 |
|
804 | ) |
|
805 | workspace = res.json_body |
|
806 | assert workspace['is_deleted'] is False |
|
807 | ||
808 | def test_api__undelete_workspace__err_403__user_workspace_manager(self) -> None: |
|
809 | """ |
|
@@ 425-484 (lines=60) @@ | ||
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 | """ |
|
427 | Test delete workspace as global manager and workspace manager |
|
428 | """ |
|
429 | self.testapp.authorization = ( |
|
430 | 'Basic', |
|
431 | ( |
|
432 | '[email protected]', |
|
433 | '[email protected]' |
|
434 | ) |
|
435 | ) |
|
436 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
437 | admin = dbsession.query(models.User) \ |
|
438 | .filter(models.User.email == '[email protected]') \ |
|
439 | .one() |
|
440 | uapi = UserApi( |
|
441 | current_user=admin, |
|
442 | session=dbsession, |
|
443 | config=self.app_config, |
|
444 | ) |
|
445 | gapi = GroupApi( |
|
446 | current_user=admin, |
|
447 | session=dbsession, |
|
448 | config=self.app_config, |
|
449 | ) |
|
450 | groups = [gapi.get_one_with_name('trusted-users')] |
|
451 | user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups) # nopep8 |
|
452 | workspace_api = WorkspaceApi( |
|
453 | current_user=admin, |
|
454 | session=dbsession, |
|
455 | config=self.app_config, |
|
456 | show_deleted=True, |
|
457 | ) |
|
458 | workspace = workspace_api.create_workspace('test', save_now=True) # nopep8 |
|
459 | rapi = RoleApi( |
|
460 | current_user=admin, |
|
461 | session=dbsession, |
|
462 | config=self.app_config, |
|
463 | ) |
|
464 | rapi.create_one(user, workspace, UserRoleInWorkspace.WORKSPACE_MANAGER, False) # nopep8 |
|
465 | transaction.commit() |
|
466 | workspace_id = int(workspace.workspace_id) |
|
467 | self.testapp.authorization = ( |
|
468 | 'Basic', |
|
469 | ( |
|
470 | '[email protected]', |
|
471 | '[email protected]' |
|
472 | ) |
|
473 | ) |
|
474 | # delete |
|
475 | res = self.testapp.put( |
|
476 | '/api/v2/workspaces/{}/trashed'.format(workspace_id), |
|
477 | status=204 |
|
478 | ) |
|
479 | res = self.testapp.get( |
|
480 | '/api/v2/workspaces/{}'.format(workspace_id), |
|
481 | status=200 |
|
482 | ) |
|
483 | workspace = res.json_body |
|
484 | assert workspace['is_deleted'] is True |
|
485 | ||
486 | def test_api__delete_workspace__err_403__user_workspace_manager(self) -> None: |
|
487 | """ |