|
24 | 24 | # pylint:disable=protected-access |
25 | 25 | # pylint:disable=redefined-outer-name |
26 | 26 |
|
27 | | - |
28 | 27 | @pytest.fixture() |
29 | 28 | def mock_new_upload_accelerator_url(): |
30 | 29 | return 'https://upload.box.com/api/2.0/files/content?upload_session_id=123' |
@@ -562,3 +561,100 @@ def test_cascade_metadata(test_folder, mock_box_session, test_metadata_template) |
562 | 561 | assert folder.object_id == test_folder.object_id |
563 | 562 | assert cascade_policy.scope == test_metadata_template.scope |
564 | 563 | assert cascade_policy.templateKey == test_metadata_template.template_key |
| 564 | + |
| 565 | + |
| 566 | +def test_get_folder_locks(test_folder, mock_box_session): |
| 567 | + expected_url = '{0}/folder_locks'.format(API.BASE_API_URL) |
| 568 | + params = {'folder_id': test_folder.object_id} |
| 569 | + mock_box_session.get.return_value.json.return_value = { |
| 570 | + "entries": [ |
| 571 | + { |
| 572 | + "folder": { |
| 573 | + "id": "12345", |
| 574 | + "etag": "1", |
| 575 | + "type": "folder", |
| 576 | + "sequence_id": "3", |
| 577 | + "name": "Contracts" |
| 578 | + }, |
| 579 | + "id": "12345678", |
| 580 | + "type": "folder_lock", |
| 581 | + "created_by": { |
| 582 | + "id": "11446498", |
| 583 | + "type": "user" |
| 584 | + }, |
| 585 | + "created_at": "2020-09-14T23:12:53Z", |
| 586 | + "locked_operations": { |
| 587 | + "move": True, |
| 588 | + "delete": True |
| 589 | + }, |
| 590 | + "lock_type": "freeze" |
| 591 | + } |
| 592 | + ], |
| 593 | + "limit": 1000, |
| 594 | + "next_marker": None |
| 595 | + } |
| 596 | + |
| 597 | + folder_locks = test_folder.get_locks() |
| 598 | + lock = folder_locks.next() |
| 599 | + |
| 600 | + mock_box_session.get.assert_called_once_with(expected_url, params=params) |
| 601 | + assert lock.id == '12345678' |
| 602 | + assert lock.folder.id == '12345' |
| 603 | + assert lock.locked_operations['move'] |
| 604 | + # pylint: disable=protected-access |
| 605 | + assert lock._session == mock_box_session |
| 606 | + |
| 607 | + |
| 608 | +def test_create_folder_lock(test_folder, mock_box_session): |
| 609 | + expected_url = '{0}/folder_locks'.format(API.BASE_API_URL) |
| 610 | + expected_body = { |
| 611 | + "folder": { |
| 612 | + "type": "folder", |
| 613 | + "id": test_folder.object_id |
| 614 | + }, |
| 615 | + "locked_operations": { |
| 616 | + "move": True, |
| 617 | + "delete": True |
| 618 | + } |
| 619 | + } |
| 620 | + mock_box_session.post.return_value.json.return_value = { |
| 621 | + "id": "12345678", |
| 622 | + "type": "folder_lock", |
| 623 | + "created_at": "2020-09-14T23:12:53Z", |
| 624 | + "created_by": { |
| 625 | + "id": "11446498", |
| 626 | + "type": "user" |
| 627 | + }, |
| 628 | + "folder": { |
| 629 | + "id": "12345", |
| 630 | + "type": "folder", |
| 631 | + "etag": "1", |
| 632 | + "name": "Contracts", |
| 633 | + "sequence_id": "3" |
| 634 | + }, |
| 635 | + "lock_type": "freeze", |
| 636 | + "locked_operations": { |
| 637 | + "delete": True, |
| 638 | + "move": True |
| 639 | + } |
| 640 | + } |
| 641 | + |
| 642 | + lock = test_folder.create_lock() |
| 643 | + |
| 644 | + mock_box_session.post.assert_called_once_with(expected_url, data=json.dumps(expected_body)) |
| 645 | + assert lock.id == '12345678' |
| 646 | + assert lock.folder.id == '12345' |
| 647 | + assert lock.locked_operations['move'] |
| 648 | + # pylint: disable=protected-access |
| 649 | + assert lock._session == mock_box_session |
| 650 | + |
| 651 | + |
| 652 | +def test_delete_folder_lock(test_folder_lock, mock_box_session): |
| 653 | + expected_url = '{0}/folder_locks/{1}'.format(API.BASE_API_URL, test_folder_lock.object_id) |
| 654 | + test_folder_lock.delete() |
| 655 | + mock_box_session.delete.assert_called_once_with( |
| 656 | + expected_url, |
| 657 | + expect_json_response=False, |
| 658 | + headers=None, |
| 659 | + params={} |
| 660 | + ) |
0 commit comments