@@ 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 | """ |