@@ 2103-2183 (lines=81) @@ | ||
2100 | assert 'code' in res.json.keys() |
|
2101 | assert res.json_body['code'] == error.USER_ROLE_NOT_FOUND |
|
2102 | ||
2103 | def test_api__update_workspace_member_role__ok_200__as_admin(self): |
|
2104 | """ |
|
2105 | Update worskpace member role |
|
2106 | """ |
|
2107 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2108 | admin = dbsession.query(models.User) \ |
|
2109 | .filter(models.User.email == '[email protected]') \ |
|
2110 | .one() |
|
2111 | uapi = UserApi( |
|
2112 | current_user=admin, |
|
2113 | session=dbsession, |
|
2114 | config=self.app_config, |
|
2115 | ) |
|
2116 | gapi = GroupApi( |
|
2117 | current_user=admin, |
|
2118 | session=dbsession, |
|
2119 | config=self.app_config, |
|
2120 | ) |
|
2121 | groups = [gapi.get_one_with_name('trusted-users')] |
|
2122 | user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups) # nopep8 |
|
2123 | user2 = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups) # nopep8 |
|
2124 | workspace_api = WorkspaceApi( |
|
2125 | current_user=admin, |
|
2126 | session=dbsession, |
|
2127 | config=self.app_config, |
|
2128 | show_deleted=True, |
|
2129 | ) |
|
2130 | workspace = workspace_api.create_workspace('test', save_now=True) # nopep8 |
|
2131 | rapi = RoleApi( |
|
2132 | current_user=None, |
|
2133 | session=dbsession, |
|
2134 | config=self.app_config, |
|
2135 | ) |
|
2136 | rapi.create_one(user, workspace, UserRoleInWorkspace.WORKSPACE_MANAGER, False) # nopep8 |
|
2137 | rapi.create_one(user2, workspace, UserRoleInWorkspace.READER, False) # nopep8 |
|
2138 | rapi.delete_one(admin.user_id, workspace.workspace_id) |
|
2139 | transaction.commit() |
|
2140 | # before |
|
2141 | self.testapp.authorization = ( |
|
2142 | 'Basic', |
|
2143 | ( |
|
2144 | '[email protected]', |
|
2145 | '[email protected]' |
|
2146 | ) |
|
2147 | ) |
|
2148 | self.testapp.get( |
|
2149 | '/api/v2/workspaces/{workspace_id}/members/{user_id}'.format( |
|
2150 | workspace_id=workspace.workspace_id, |
|
2151 | user_id=user2.user_id |
|
2152 | ), |
|
2153 | status=200, |
|
2154 | ) |
|
2155 | # update workspace role |
|
2156 | params = { |
|
2157 | 'role': 'content-manager', |
|
2158 | } |
|
2159 | res = self.testapp.put_json( |
|
2160 | '/api/v2/workspaces/{workspace_id}/members/{user_id}'.format( |
|
2161 | workspace_id=workspace.workspace_id, |
|
2162 | user_id=user2.user_id |
|
2163 | ), |
|
2164 | status=200, |
|
2165 | params=params, |
|
2166 | ) |
|
2167 | user_role = res.json_body |
|
2168 | assert user_role['role'] == 'content-manager' |
|
2169 | assert user_role['user_id'] == user2.user_id |
|
2170 | assert user_role['workspace_id'] == workspace.workspace_id |
|
2171 | # after |
|
2172 | res = self.testapp.get( |
|
2173 | '/api/v2/workspaces/{workspace_id}/members/{user_id}'.format( |
|
2174 | workspace_id=workspace.workspace_id, |
|
2175 | user_id=user2.user_id, |
|
2176 | ), |
|
2177 | status=200 |
|
2178 | ).json_body # nopep8 |
|
2179 | user_role = res |
|
2180 | assert user_role['role'] == 'content-manager' |
|
2181 | assert user_role['do_notify'] is False |
|
2182 | assert user_role['user_id'] == user2.user_id |
|
2183 | assert user_role['workspace_id'] == workspace.workspace_id |
|
2184 | ||
2185 | def test_api__delete_workspace_member_role__ok_200__as_admin(self): |
|
2186 | """ |
|
@@ 1963-2043 (lines=81) @@ | ||
1960 | assert 'code' in res.json.keys() |
|
1961 | assert res.json_body['code'] == error.USER_NOT_FOUND |
|
1962 | ||
1963 | def test_api__update_workspace_member_role__ok_200__nominal_case(self): |
|
1964 | """ |
|
1965 | Update worskpace member role |
|
1966 | """ |
|
1967 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
1968 | admin = dbsession.query(models.User) \ |
|
1969 | .filter(models.User.email == '[email protected]') \ |
|
1970 | .one() |
|
1971 | uapi = UserApi( |
|
1972 | current_user=admin, |
|
1973 | session=dbsession, |
|
1974 | config=self.app_config, |
|
1975 | ) |
|
1976 | gapi = GroupApi( |
|
1977 | current_user=admin, |
|
1978 | session=dbsession, |
|
1979 | config=self.app_config, |
|
1980 | ) |
|
1981 | groups = [gapi.get_one_with_name('trusted-users')] |
|
1982 | user = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups) # nopep8 |
|
1983 | user2 = uapi.create_user('[email protected]', password='[email protected]', do_save=True, do_notify=False, groups=groups) # nopep8 |
|
1984 | workspace_api = WorkspaceApi( |
|
1985 | current_user=admin, |
|
1986 | session=dbsession, |
|
1987 | config=self.app_config, |
|
1988 | show_deleted=True, |
|
1989 | ) |
|
1990 | workspace = workspace_api.create_workspace('test', save_now=True) # nopep8 |
|
1991 | rapi = RoleApi( |
|
1992 | current_user=None, |
|
1993 | session=dbsession, |
|
1994 | config=self.app_config, |
|
1995 | ) |
|
1996 | rapi.create_one(user, workspace, UserRoleInWorkspace.WORKSPACE_MANAGER, False) # nopep8 |
|
1997 | rapi.create_one(user2, workspace, UserRoleInWorkspace.READER, False) # nopep8 |
|
1998 | rapi.delete_one(admin.user_id, workspace.workspace_id) |
|
1999 | transaction.commit() |
|
2000 | # before |
|
2001 | self.testapp.authorization = ( |
|
2002 | 'Basic', |
|
2003 | ( |
|
2004 | '[email protected]', |
|
2005 | '[email protected]' |
|
2006 | ) |
|
2007 | ) |
|
2008 | self.testapp.get( |
|
2009 | '/api/v2/workspaces/{workspace_id}/members/{user_id}'.format( |
|
2010 | workspace_id=workspace.workspace_id, |
|
2011 | user_id=user2.user_id |
|
2012 | ), |
|
2013 | status=200, |
|
2014 | ) |
|
2015 | # update workspace role |
|
2016 | params = { |
|
2017 | 'role': 'content-manager', |
|
2018 | } |
|
2019 | res = self.testapp.put_json( |
|
2020 | '/api/v2/workspaces/{workspace_id}/members/{user_id}'.format( |
|
2021 | workspace_id=workspace.workspace_id, |
|
2022 | user_id=user2.user_id |
|
2023 | ), |
|
2024 | status=200, |
|
2025 | params=params, |
|
2026 | ) |
|
2027 | user_role = res.json_body |
|
2028 | assert user_role['role'] == 'content-manager' |
|
2029 | assert user_role['user_id'] == user2.user_id |
|
2030 | assert user_role['workspace_id'] == workspace.workspace_id |
|
2031 | # after |
|
2032 | res = self.testapp.get( |
|
2033 | '/api/v2/workspaces/{workspace_id}/members/{user_id}'.format( |
|
2034 | workspace_id=workspace.workspace_id, |
|
2035 | user_id=user2.user_id, |
|
2036 | ), |
|
2037 | status=200 |
|
2038 | ).json_body # nopep8 |
|
2039 | user_role = res |
|
2040 | assert user_role['role'] == 'content-manager' |
|
2041 | assert user_role['do_notify'] is False |
|
2042 | assert user_role['user_id'] == user2.user_id |
|
2043 | assert user_role['workspace_id'] == workspace.workspace_id |
|
2044 | ||
2045 | def test_api__update_workspace_member_role__err_400__role_not_exist(self): |
|
2046 | """ |