Code Duplication    Length = 95-99 lines in 2 locations

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

@@ 1289-1387 (lines=99) @@
1286
            status=400,
1287
        )
1288
1289
    def test_api_set_content_as_read__ok__200__user_itself(self):
1290
        # init DB
1291
        dbsession = get_tm_session(self.session_factory, transaction.manager)
1292
        admin = dbsession.query(models.User) \
1293
            .filter(models.User.email == '[email protected]') \
1294
            .one()
1295
        workspace_api = WorkspaceApi(
1296
            current_user=admin,
1297
            session=dbsession,
1298
            config=self.app_config
1299
1300
        )
1301
        workspace = WorkspaceApi(
1302
            current_user=admin,
1303
            session=dbsession,
1304
            config=self.app_config,
1305
        ).create_workspace(
1306
            'test workspace',
1307
            save_now=True
1308
        )
1309
        uapi = UserApi(
1310
            current_user=admin,
1311
            session=dbsession,
1312
            config=self.app_config,
1313
        )
1314
        gapi = GroupApi(
1315
            current_user=admin,
1316
            session=dbsession,
1317
            config=self.app_config,
1318
        )
1319
        groups = [gapi.get_one_with_name('users')]
1320
        test_user = uapi.create_user(
1321
            email='[email protected]',
1322
            password='pass',
1323
            name='bob',
1324
            groups=groups,
1325
            timezone='Europe/Paris',
1326
            lang='fr',
1327
            do_save=True,
1328
            do_notify=False,
1329
        )
1330
        rapi = RoleApi(
1331
            current_user=admin,
1332
            session=dbsession,
1333
            config=self.app_config,
1334
        )
1335
        rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, False)
1336
        api = ContentApi(
1337
            current_user=admin,
1338
            session=dbsession,
1339
            config=self.app_config,
1340
        )
1341
        api2 = ContentApi(
1342
            current_user=test_user,
1343
            session=dbsession,
1344
            config=self.app_config,
1345
        )
1346
        main_folder = api.create(CONTENT_TYPES.Folder.slug, workspace, None, 'this is randomized folder', '', True)  # nopep8
1347
        # creation order test
1348
        firstly_created = api.create(CONTENT_TYPES.Page.slug, workspace, main_folder, 'creation_order_test', '', True)  # nopep8
1349
        api.mark_unread(firstly_created)
1350
        api2.mark_unread(firstly_created)
1351
        dbsession.flush()
1352
        transaction.commit()
1353
1354
        self.testapp.authorization = (
1355
            'Basic',
1356
            (
1357
                '[email protected]',
1358
                'pass'
1359
            )
1360
        )
1361
        # before
1362
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1363
            user_id=test_user.user_id,
1364
            workspace_id=workspace.workspace_id
1365
            ),
1366
            status=200
1367
        )
1368
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1369
        assert res.json_body[0]['read_by_user'] is False
1370
1371
        # read
1372
        self.testapp.put(
1373
            '/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/read'.format(  # nopep8
1374
                workspace_id=workspace.workspace_id,
1375
                content_id=firstly_created.content_id,
1376
                user_id=test_user.user_id,
1377
            )
1378
        )
1379
        # after
1380
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1381
            user_id=test_user.user_id,
1382
            workspace_id=workspace.workspace_id
1383
            ),
1384
            status=200
1385
        )
1386
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1387
        assert res.json_body[0]['read_by_user'] is True
1388
1389
    def test_api_set_content_as_read__ok__403__other_user(self):
1390
        # init DB
@@ 1864-1958 (lines=95) @@
1861
            status=400,
1862
        )
1863
1864
    def test_api_set_content_as_unread__ok__200__user_itself(self):
1865
        # init DB
1866
        dbsession = get_tm_session(self.session_factory, transaction.manager)
1867
        admin = dbsession.query(models.User) \
1868
            .filter(models.User.email == '[email protected]') \
1869
            .one()
1870
        workspace_api = WorkspaceApi(
1871
            current_user=admin,
1872
            session=dbsession,
1873
            config=self.app_config
1874
1875
        )
1876
        workspace = WorkspaceApi(
1877
            current_user=admin,
1878
            session=dbsession,
1879
            config=self.app_config,
1880
        ).create_workspace(
1881
            'test workspace',
1882
            save_now=True
1883
        )
1884
        uapi = UserApi(
1885
            current_user=admin,
1886
            session=dbsession,
1887
            config=self.app_config,
1888
        )
1889
        gapi = GroupApi(
1890
            current_user=admin,
1891
            session=dbsession,
1892
            config=self.app_config,
1893
        )
1894
        groups = [gapi.get_one_with_name('users')]
1895
        test_user = uapi.create_user(
1896
            email='[email protected]',
1897
            password='pass',
1898
            name='bob',
1899
            groups=groups,
1900
            timezone='Europe/Paris',
1901
            lang='fr',
1902
            do_save=True,
1903
            do_notify=False,
1904
        )
1905
        rapi = RoleApi(
1906
            current_user=admin,
1907
            session=dbsession,
1908
            config=self.app_config,
1909
        )
1910
        rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, False)
1911
        api = ContentApi(
1912
            current_user=admin,
1913
            session=dbsession,
1914
            config=self.app_config,
1915
        )
1916
        api2 = ContentApi(
1917
            current_user=test_user,
1918
            session=dbsession,
1919
            config=self.app_config,
1920
        )
1921
        main_folder = api.create(CONTENT_TYPES.Folder.slug, workspace, None, 'this is randomized folder', '', True)  # nopep8
1922
        # creation order test
1923
        firstly_created = api.create(CONTENT_TYPES.Page.slug, workspace, main_folder, 'creation_order_test', '', True)  # nopep8
1924
        api.mark_read(firstly_created)
1925
        api2.mark_read(firstly_created)
1926
        dbsession.flush()
1927
        transaction.commit()
1928
1929
        self.testapp.authorization = (
1930
            'Basic',
1931
            (
1932
                '[email protected]',
1933
                'pass'
1934
            )
1935
        )
1936
        # before
1937
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1938
            user_id=test_user.user_id,
1939
            workspace_id=workspace.workspace_id
1940
        ), status=200)
1941
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1942
        assert res.json_body[0]['read_by_user'] is True
1943
1944
        # unread
1945
        self.testapp.put(
1946
            '/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/unread'.format(  # nopep8
1947
                workspace_id=workspace.workspace_id,
1948
                content_id=firstly_created.content_id,
1949
                user_id=test_user.user_id,
1950
            )
1951
        )
1952
        # after
1953
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1954
            user_id=test_user.user_id,
1955
            workspace_id=workspace.workspace_id
1956
        ), status=200)
1957
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1958
        assert res.json_body[0]['read_by_user'] is False
1959
1960
    def test_api_set_content_as_unread__err__403__other_user(self):
1961
        # init DB