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