Code Duplication    Length = 107-109 lines in 2 locations

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

@@ 1589-1697 (lines=109) @@
1586
    """
1587
    Tests for /api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/unread  # nopep8
1588
    """
1589
    def test_api_set_content_as_unread__ok__200__admin(self):
1590
        # init DB
1591
        dbsession = get_tm_session(self.session_factory, transaction.manager)
1592
        admin = dbsession.query(models.User) \
1593
            .filter(models.User.email == '[email protected]') \
1594
            .one()
1595
        workspace_api = WorkspaceApi(
1596
            current_user=admin,
1597
            session=dbsession,
1598
            config=self.app_config
1599
1600
        )
1601
        workspace = WorkspaceApi(
1602
            current_user=admin,
1603
            session=dbsession,
1604
            config=self.app_config,
1605
        ).create_workspace(
1606
            'test workspace',
1607
            save_now=True
1608
        )
1609
        uapi = UserApi(
1610
            current_user=admin,
1611
            session=dbsession,
1612
            config=self.app_config,
1613
        )
1614
        gapi = GroupApi(
1615
            current_user=admin,
1616
            session=dbsession,
1617
            config=self.app_config,
1618
        )
1619
        groups = [gapi.get_one_with_name('users')]
1620
        test_user = uapi.create_user(
1621
            email='[email protected]',
1622
            password='pass',
1623
            name='bob',
1624
            groups=groups,
1625
            timezone='Europe/Paris',
1626
            lang='fr',
1627
            do_save=True,
1628
            do_notify=False,
1629
        )
1630
        rapi = RoleApi(
1631
            current_user=admin,
1632
            session=dbsession,
1633
            config=self.app_config,
1634
        )
1635
        rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, False)
1636
        api = ContentApi(
1637
            current_user=admin,
1638
            session=dbsession,
1639
            config=self.app_config,
1640
        )
1641
        api2 = ContentApi(
1642
            current_user=test_user,
1643
            session=dbsession,
1644
            config=self.app_config,
1645
        )
1646
        main_folder = api.create(CONTENT_TYPES.Folder.slug, workspace, None, 'this is randomized folder', '', True)  # nopep8
1647
        # creation order test
1648
        firstly_created = api.create(CONTENT_TYPES.Page.slug, workspace, main_folder, 'creation_order_test', '', True)  # nopep8
1649
        api.mark_read(firstly_created)
1650
        api2.mark_read(firstly_created)
1651
        dbsession.flush()
1652
        transaction.commit()
1653
1654
        self.testapp.authorization = (
1655
            'Basic',
1656
            (
1657
                '[email protected]',
1658
                '[email protected]'
1659
            )
1660
        )
1661
        # before
1662
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1663
            user_id=test_user.user_id,
1664
            workspace_id=workspace.workspace_id
1665
        ), status=200)
1666
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1667
        assert res.json_body[0]['read_by_user'] is True
1668
1669
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1670
            user_id=admin.user_id,
1671
            workspace_id=workspace.workspace_id
1672
        ), status=200)
1673
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1674
        assert res.json_body[0]['read_by_user'] is True
1675
1676
        # unread
1677
        self.testapp.put(
1678
            '/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/unread'.format(  # nopep8
1679
                workspace_id=workspace.workspace_id,
1680
                content_id=firstly_created.content_id,
1681
                user_id=test_user.user_id,
1682
            )
1683
        )
1684
        # after
1685
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1686
            user_id=test_user.user_id,
1687
            workspace_id=workspace.workspace_id
1688
        ), status=200)
1689
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1690
        assert res.json_body[0]['read_by_user'] is False
1691
1692
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1693
            user_id=admin.user_id,
1694
            workspace_id=workspace.workspace_id
1695
        ), status=200)
1696
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1697
        assert res.json_body[0]['read_by_user'] is True
1698
1699
    def test_api_set_content_as_unread__err__400__admin_workspace_do_not_exist(self):
1700
        # init DB
@@ 1017-1123 (lines=107) @@
1014
    """
1015
    Tests for /api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/read  # nopep8
1016
    """
1017
    def test_api_set_content_as_read__ok__200__admin(self):
1018
        # init DB
1019
        dbsession = get_tm_session(self.session_factory, transaction.manager)
1020
        admin = dbsession.query(models.User) \
1021
            .filter(models.User.email == '[email protected]') \
1022
            .one()
1023
        workspace_api = WorkspaceApi(
1024
            current_user=admin,
1025
            session=dbsession,
1026
            config=self.app_config
1027
1028
        )
1029
        workspace = WorkspaceApi(
1030
            current_user=admin,
1031
            session=dbsession,
1032
            config=self.app_config,
1033
        ).create_workspace(
1034
            'test workspace',
1035
            save_now=True
1036
        )
1037
        uapi = UserApi(
1038
            current_user=admin,
1039
            session=dbsession,
1040
            config=self.app_config,
1041
        )
1042
        gapi = GroupApi(
1043
            current_user=admin,
1044
            session=dbsession,
1045
            config=self.app_config,
1046
        )
1047
        groups = [gapi.get_one_with_name('users')]
1048
        test_user = uapi.create_user(
1049
            email='[email protected]',
1050
            password='pass',
1051
            name='bob',
1052
            groups=groups,
1053
            timezone='Europe/Paris',
1054
            do_save=True,
1055
            do_notify=False,
1056
        )
1057
        rapi = RoleApi(
1058
            current_user=admin,
1059
            session=dbsession,
1060
            config=self.app_config,
1061
        )
1062
        rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, False)
1063
        api = ContentApi(
1064
            current_user=admin,
1065
            session=dbsession,
1066
            config=self.app_config,
1067
        )
1068
        api2 = ContentApi(
1069
            current_user=test_user,
1070
            session=dbsession,
1071
            config=self.app_config,
1072
        )
1073
        main_folder = api.create(CONTENT_TYPES.Folder.slug, workspace, None, 'this is randomized folder', '', True)  # nopep8
1074
        # creation order test
1075
        firstly_created = api.create(CONTENT_TYPES.Page.slug, workspace, main_folder, 'creation_order_test', '', True)  # nopep8
1076
        api.mark_unread(firstly_created)
1077
        api2.mark_unread(firstly_created)
1078
        dbsession.flush()
1079
        transaction.commit()
1080
1081
        self.testapp.authorization = (
1082
            'Basic',
1083
            (
1084
                '[email protected]',
1085
                '[email protected]'
1086
            )
1087
        )
1088
        # before
1089
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1090
            user_id=test_user.user_id,
1091
            workspace_id=workspace.workspace_id
1092
        ), status=200)
1093
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1094
        assert res.json_body[0]['read_by_user'] is False
1095
1096
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1097
            user_id=admin.user_id,
1098
            workspace_id=workspace.workspace_id
1099
        ), status=200)
1100
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1101
        assert res.json_body[0]['read_by_user'] is False
1102
        # read
1103
        self.testapp.put(
1104
            '/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/{content_id}/read'.format(  # nopep8
1105
                workspace_id=workspace.workspace_id,
1106
                content_id=firstly_created.content_id,
1107
                user_id=test_user.user_id,
1108
            )
1109
        )
1110
        # after
1111
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1112
            user_id=test_user.user_id,
1113
            workspace_id=workspace.workspace_id
1114
        ), status=200) # nopep8
1115
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1116
        assert res.json_body[0]['read_by_user'] is True
1117
1118
        res = self.testapp.get('/api/v2/users/{user_id}/workspaces/{workspace_id}/contents/read_status'.format(  # nopep8
1119
            user_id=admin.user_id,
1120
            workspace_id=workspace.workspace_id
1121
        ), status=200) # nopep8
1122
        assert res.json_body[0]['content_id'] == firstly_created.content_id
1123
        assert res.json_body[0]['read_by_user'] is False
1124
1125
    def test_api_set_content_as_read__ok__200__admin_workspace_do_not_exist(self):
1126
        # init DB