|
41 | 41 | from boxsdk.object.legal_hold_policy_assignment import LegalHoldPolicyAssignment
|
42 | 42 | from boxsdk.object.metadata_cascade_policy import MetadataCascadePolicy
|
43 | 43 | from boxsdk.object.sign_request import SignRequest
|
| 44 | +from boxsdk.object.sign_template import SignTemplate |
44 | 45 | from boxsdk.object.task import Task
|
45 | 46 | from boxsdk.object.task_assignment import TaskAssignment
|
46 | 47 | from boxsdk.object.webhook import Webhook
|
@@ -1664,6 +1665,105 @@ def mock_sign_request_response():
|
1664 | 1665 | return mock_sign_request
|
1665 | 1666 |
|
1666 | 1667 |
|
| 1668 | +@pytest.fixture(scope='module') |
| 1669 | +def mock_sign_template_response(): |
| 1670 | + mock_sign_template = { |
| 1671 | + "id": "93153068-5420-467b-b8ef-8e54bfb7be42", |
| 1672 | + "type": "sign-template", |
| 1673 | + "name": "important-file.pdf", |
| 1674 | + "email_message": "Please sign this document.\n\nKind regards", |
| 1675 | + "email_subject": "Box User (boxuser@box.com) has requested your signature on a document", |
| 1676 | + "parent_folder": { |
| 1677 | + "id": "123456789", |
| 1678 | + "etag": "0", |
| 1679 | + "type": "folder", |
| 1680 | + "sequence_id": "0", |
| 1681 | + "name": "My Sign Requests" |
| 1682 | + }, |
| 1683 | + "auto_expire_days": "null", |
| 1684 | + "source_files": [ |
| 1685 | + { |
| 1686 | + "id": "123456", |
| 1687 | + "etag": "0", |
| 1688 | + "type": "file", |
| 1689 | + "sequence_id": "0", |
| 1690 | + "sha1": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", |
| 1691 | + "file_version": { |
| 1692 | + "id": "123456", |
| 1693 | + "type": "file_version", |
| 1694 | + "sha1": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
| 1695 | + } |
| 1696 | + } |
| 1697 | + ], |
| 1698 | + "are_email_settings_locked": "false", |
| 1699 | + "are_fields_locked": "false", |
| 1700 | + "are_files_locked": "false", |
| 1701 | + "are_options_locked": "false", |
| 1702 | + "are_recipients_locked": "false", |
| 1703 | + "signers": [ |
| 1704 | + { |
| 1705 | + "email": "", |
| 1706 | + "label": "", |
| 1707 | + "public_id": "AAQXQXJZ4", |
| 1708 | + "role": "final_copy_reader", |
| 1709 | + "is_in_person": "false", |
| 1710 | + "order": 1, |
| 1711 | + "inputs": [] |
| 1712 | + }, |
| 1713 | + { |
| 1714 | + "email": "", |
| 1715 | + "label": "", |
| 1716 | + "public_id": "13XQXJZ4", |
| 1717 | + "role": "signer", |
| 1718 | + "is_in_person": "false", |
| 1719 | + "order": 1, |
| 1720 | + "inputs": [ |
| 1721 | + { |
| 1722 | + "document_tag_id": None, |
| 1723 | + "id": "0260f921-3b52-477f-ae74-0b0b0b0b0b0b", |
| 1724 | + "type": "signature", |
| 1725 | + "text_value": None, |
| 1726 | + "is_required": True, |
| 1727 | + "coordinates": { |
| 1728 | + "x": 0.27038464059712, |
| 1729 | + "y": 0.10051756244533624 |
| 1730 | + }, |
| 1731 | + "dimensions": { |
| 1732 | + "width": 0.23570031566618235, |
| 1733 | + "height": 0.04781003891921971 |
| 1734 | + }, |
| 1735 | + "date_value": None, |
| 1736 | + "page_index": 0, |
| 1737 | + "checkbox_value": None, |
| 1738 | + "document_id": "2fdf9003-d798-40ee-be7f-0b0b0b0b0b0b", |
| 1739 | + "content_type": "signature", |
| 1740 | + "dropdown_choices": None, |
| 1741 | + "group_id": None, |
| 1742 | + "label": None |
| 1743 | + } |
| 1744 | + ] |
| 1745 | + } |
| 1746 | + ], |
| 1747 | + "ready_sign_link": None, |
| 1748 | + "custom_branding": None, |
| 1749 | + "days_valid": 0, |
| 1750 | + "additional_info": { |
| 1751 | + "non_editable": [], |
| 1752 | + "required": { |
| 1753 | + "signers": [ |
| 1754 | + [ |
| 1755 | + "email" |
| 1756 | + ], |
| 1757 | + [ |
| 1758 | + "email" |
| 1759 | + ] |
| 1760 | + ] |
| 1761 | + } |
| 1762 | + } |
| 1763 | + } |
| 1764 | + return mock_sign_template |
| 1765 | + |
| 1766 | + |
1667 | 1767 | def test_get_sign_requests(mock_client, mock_box_session, mock_sign_request_response):
|
1668 | 1768 | expected_url = f'{API.BASE_API_URL}/sign_requests'
|
1669 | 1769 |
|
@@ -1754,3 +1854,53 @@ def test_file_request(mock_client):
|
1754 | 1854 |
|
1755 | 1855 | assert isinstance(file_request, FileRequest)
|
1756 | 1856 | assert file_request.object_id == file_request_id
|
| 1857 | + |
| 1858 | + |
| 1859 | +def test_get_sign_templates_from_id(mock_client, mock_box_session, mock_sign_template_response): |
| 1860 | + test_sign_template_id = '93153068-5420-467b-b8ef-8e54bfb7be42' |
| 1861 | + expected_url = f'{API.BASE_API_URL}/sign_templates/{test_sign_template_id}' |
| 1862 | + mock_box_session.get.return_value.json.return_value = mock_sign_template_response |
| 1863 | + |
| 1864 | + sign_template = mock_client.sign_template(test_sign_template_id).get() |
| 1865 | + |
| 1866 | + mock_box_session.get.assert_called_once_with(expected_url, headers=None, params=None) |
| 1867 | + |
| 1868 | + assert isinstance(sign_template, SignTemplate) |
| 1869 | + assert sign_template.id == '93153068-5420-467b-b8ef-8e54bfb7be42' |
| 1870 | + |
| 1871 | + |
| 1872 | +def test_get_sign_template(mock_client, mock_box_session, mock_sign_template_response): |
| 1873 | + test_sign_template_id = '93153068-5420-467b-b8ef-8e54bfb7be42' |
| 1874 | + expected_url = f'{API.BASE_API_URL}/sign_templates/{test_sign_template_id}' |
| 1875 | + mock_box_session.get.return_value.json.return_value = mock_sign_template_response |
| 1876 | + |
| 1877 | + sign_template = mock_client.get_sign_template(test_sign_template_id) |
| 1878 | + |
| 1879 | + mock_box_session.get.assert_called_once_with(expected_url) |
| 1880 | + |
| 1881 | + assert isinstance(sign_template, SignTemplate) |
| 1882 | + assert sign_template.id == '93153068-5420-467b-b8ef-8e54bfb7be42' |
| 1883 | + assert sign_template.name == 'important-file.pdf' |
| 1884 | + assert sign_template.email_message == 'Please sign this document.\n\nKind regards' |
| 1885 | + |
| 1886 | + |
| 1887 | +def test_get_sign_templates(mock_client, mock_box_session, mock_sign_template_response): |
| 1888 | + expected_url = f'{API.BASE_API_URL}/sign_templates' |
| 1889 | + |
| 1890 | + mock_sign_template = mock_sign_template_response |
| 1891 | + mock_box_session.get.return_value.json.return_value = { |
| 1892 | + 'total_count': 1, |
| 1893 | + 'limit': 100, |
| 1894 | + 'entries': [mock_sign_template], |
| 1895 | + 'next_marker': None, |
| 1896 | + 'previous_marker': None, |
| 1897 | + } |
| 1898 | + |
| 1899 | + sign_templates = mock_client.get_sign_templates() |
| 1900 | + |
| 1901 | + sign_template = sign_templates.next() |
| 1902 | + |
| 1903 | + mock_box_session.get.assert_called_once_with(expected_url, params={}) |
| 1904 | + assert isinstance(sign_template, SignTemplate) |
| 1905 | + assert sign_template.id == '93153068-5420-467b-b8ef-8e54bfb7be42' |
| 1906 | + assert sign_template.name == 'important-file.pdf' |
0 commit comments