Code Duplication    Length = 81-81 lines in 2 locations

backend/tracim_backend/tests/functional/test_workspaces.py 2 locations

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