@@ 1030-1136 (lines=107) @@ | ||
1027 | """ |
|
1028 | Tests for /api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/read # nopep8 |
|
1029 | """ |
|
1030 | def test_api_set_content_as_read__ok__200__admin(self): |
|
1031 | # init DB |
|
1032 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
1033 | admin = dbsession.query(models.User) \ |
|
1034 | .filter(models.User.email == '[email protected]') \ |
|
1035 | .one() |
|
1036 | workspace_api = WorkspaceApi( |
|
1037 | current_user=admin, |
|
1038 | session=dbsession, |
|
1039 | config=self.app_config |
|
1040 | ||
1041 | ) |
|
1042 | workspace = WorkspaceApi( |
|
1043 | current_user=admin, |
|
1044 | session=dbsession, |
|
1045 | config=self.app_config, |
|
1046 | ).create_workspace( |
|
1047 | 'test workspace', |
|
1048 | save_now=True |
|
1049 | ) |
|
1050 | uapi = UserApi( |
|
1051 | current_user=admin, |
|
1052 | session=dbsession, |
|
1053 | config=self.app_config, |
|
1054 | ) |
|
1055 | gapi = GroupApi( |
|
1056 | current_user=admin, |
|
1057 | session=dbsession, |
|
1058 | config=self.app_config, |
|
1059 | ) |
|
1060 | groups = [gapi.get_one_with_name('users')] |
|
1061 | test_user = uapi.create_user( |
|
1062 | email='[email protected]', |
|
1063 | password='pass', |
|
1064 | name='bob', |
|
1065 | groups=groups, |
|
1066 | timezone='Europe/Paris', |
|
1067 | do_save=True, |
|
1068 | do_notify=False, |
|
1069 | ) |
|
1070 | rapi = RoleApi( |
|
1071 | current_user=admin, |
|
1072 | session=dbsession, |
|
1073 | config=self.app_config, |
|
1074 | ) |
|
1075 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, False) |
|
1076 | api = ContentApi( |
|
1077 | current_user=admin, |
|
1078 | session=dbsession, |
|
1079 | config=self.app_config, |
|
1080 | ) |
|
1081 | api2 = ContentApi( |
|
1082 | current_user=test_user, |
|
1083 | session=dbsession, |
|
1084 | config=self.app_config, |
|
1085 | ) |
|
1086 | main_folder = api.create(content_type_list.Folder.slug, workspace, None, 'this is randomized folder', '', True) # nopep8 |
|
1087 | # creation order test |
|
1088 | firstly_created = api.create(content_type_list.Page.slug, workspace, main_folder, 'creation_order_test', '', True) # nopep8 |
|
1089 | api.mark_unread(firstly_created) |
|
1090 | api2.mark_unread(firstly_created) |
|
1091 | dbsession.flush() |
|
1092 | transaction.commit() |
|
1093 | ||
1094 | self.testapp.authorization = ( |
|
1095 | 'Basic', |
|
1096 | ( |
|
1097 | '[email protected]', |
|
1098 | '[email protected]' |
|
1099 | ) |
|
1100 | ) |
|
1101 | # before |
|
1102 | res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format( # nopep8 |
|
1103 | user_id=test_user.user_id, |
|
1104 | workspace_id=workspace.workspace_id |
|
1105 | ), status=200) |
|
1106 | assert res.json_body[0]['content_id'] == firstly_created.content_id |
|
1107 | assert res.json_body[0]['read_by_user'] is False |
|
1108 | ||
1109 | res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format( # nopep8 |
|
1110 | user_id=admin.user_id, |
|
1111 | workspace_id=workspace.workspace_id |
|
1112 | ), status=200) |
|
1113 | assert res.json_body[0]['content_id'] == firstly_created.content_id |
|
1114 | assert res.json_body[0]['read_by_user'] is False |
|
1115 | # read |
|
1116 | self.testapp.put( |
|
1117 | '/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/read'.format( # nopep8 |
|
1118 | workspace_id=workspace.workspace_id, |
|
1119 | content_id=firstly_created.content_id, |
|
1120 | user_id=test_user.user_id, |
|
1121 | ) |
|
1122 | ) |
|
1123 | # after |
|
1124 | res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format( # nopep8 |
|
1125 | user_id=test_user.user_id, |
|
1126 | workspace_id=workspace.workspace_id |
|
1127 | ), status=200) # nopep8 |
|
1128 | assert res.json_body[0]['content_id'] == firstly_created.content_id |
|
1129 | assert res.json_body[0]['read_by_user'] is True |
|
1130 | ||
1131 | res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format( # nopep8 |
|
1132 | user_id=admin.user_id, |
|
1133 | workspace_id=workspace.workspace_id |
|
1134 | ), status=200) # nopep8 |
|
1135 | assert res.json_body[0]['content_id'] == firstly_created.content_id |
|
1136 | assert res.json_body[0]['read_by_user'] is False |
|
1137 | ||
1138 | def test_api_set_content_as_read__ok__200__admin_workspace_do_not_exist(self): |
|
1139 | # init DB |
|
@@ 1716-1824 (lines=109) @@ | ||
1713 | """ |
|
1714 | Tests for /api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/unread # nopep8 |
|
1715 | """ |
|
1716 | def test_api_set_content_as_unread__ok__200__admin(self): |
|
1717 | # init DB |
|
1718 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
1719 | admin = dbsession.query(models.User) \ |
|
1720 | .filter(models.User.email == '[email protected]') \ |
|
1721 | .one() |
|
1722 | workspace_api = WorkspaceApi( |
|
1723 | current_user=admin, |
|
1724 | session=dbsession, |
|
1725 | config=self.app_config |
|
1726 | ||
1727 | ) |
|
1728 | workspace = WorkspaceApi( |
|
1729 | current_user=admin, |
|
1730 | session=dbsession, |
|
1731 | config=self.app_config, |
|
1732 | ).create_workspace( |
|
1733 | 'test workspace', |
|
1734 | save_now=True |
|
1735 | ) |
|
1736 | uapi = UserApi( |
|
1737 | current_user=admin, |
|
1738 | session=dbsession, |
|
1739 | config=self.app_config, |
|
1740 | ) |
|
1741 | gapi = GroupApi( |
|
1742 | current_user=admin, |
|
1743 | session=dbsession, |
|
1744 | config=self.app_config, |
|
1745 | ) |
|
1746 | groups = [gapi.get_one_with_name('users')] |
|
1747 | test_user = uapi.create_user( |
|
1748 | email='[email protected]', |
|
1749 | password='pass', |
|
1750 | name='bob', |
|
1751 | groups=groups, |
|
1752 | timezone='Europe/Paris', |
|
1753 | lang='fr', |
|
1754 | do_save=True, |
|
1755 | do_notify=False, |
|
1756 | ) |
|
1757 | rapi = RoleApi( |
|
1758 | current_user=admin, |
|
1759 | session=dbsession, |
|
1760 | config=self.app_config, |
|
1761 | ) |
|
1762 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, False) |
|
1763 | api = ContentApi( |
|
1764 | current_user=admin, |
|
1765 | session=dbsession, |
|
1766 | config=self.app_config, |
|
1767 | ) |
|
1768 | api2 = ContentApi( |
|
1769 | current_user=test_user, |
|
1770 | session=dbsession, |
|
1771 | config=self.app_config, |
|
1772 | ) |
|
1773 | main_folder = api.create(content_type_list.Folder.slug, workspace, None, 'this is randomized folder', '', True) # nopep8 |
|
1774 | # creation order test |
|
1775 | firstly_created = api.create(content_type_list.Page.slug, workspace, main_folder, 'creation_order_test', '', True) # nopep8 |
|
1776 | api.mark_read(firstly_created) |
|
1777 | api2.mark_read(firstly_created) |
|
1778 | dbsession.flush() |
|
1779 | transaction.commit() |
|
1780 | ||
1781 | self.testapp.authorization = ( |
|
1782 | 'Basic', |
|
1783 | ( |
|
1784 | '[email protected]', |
|
1785 | '[email protected]' |
|
1786 | ) |
|
1787 | ) |
|
1788 | # before |
|
1789 | res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format( # nopep8 |
|
1790 | user_id=test_user.user_id, |
|
1791 | workspace_id=workspace.workspace_id |
|
1792 | ), status=200) |
|
1793 | assert res.json_body[0]['content_id'] == firstly_created.content_id |
|
1794 | assert res.json_body[0]['read_by_user'] is True |
|
1795 | ||
1796 | res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format( # nopep8 |
|
1797 | user_id=admin.user_id, |
|
1798 | workspace_id=workspace.workspace_id |
|
1799 | ), status=200) |
|
1800 | assert res.json_body[0]['content_id'] == firstly_created.content_id |
|
1801 | assert res.json_body[0]['read_by_user'] is True |
|
1802 | ||
1803 | # unread |
|
1804 | self.testapp.put( |
|
1805 | '/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/unread'.format( # nopep8 |
|
1806 | workspace_id=workspace.workspace_id, |
|
1807 | content_id=firstly_created.content_id, |
|
1808 | user_id=test_user.user_id, |
|
1809 | ) |
|
1810 | ) |
|
1811 | # after |
|
1812 | res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format( # nopep8 |
|
1813 | user_id=test_user.user_id, |
|
1814 | workspace_id=workspace.workspace_id |
|
1815 | ), status=200) |
|
1816 | assert res.json_body[0]['content_id'] == firstly_created.content_id |
|
1817 | assert res.json_body[0]['read_by_user'] is False |
|
1818 | ||
1819 | res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format( # nopep8 |
|
1820 | user_id=admin.user_id, |
|
1821 | workspace_id=workspace.workspace_id |
|
1822 | ), status=200) |
|
1823 | assert res.json_body[0]['content_id'] == firstly_created.content_id |
|
1824 | assert res.json_body[0]['read_by_user'] is True |
|
1825 | ||
1826 | def test_api_set_content_as_unread__err__400__admin_workspace_do_not_exist(self): |
|
1827 | # init DB |