Code Duplication    Length = 75-77 lines in 2 locations

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

@@ 1273-1347 (lines=75) @@
1270
1271
    fixtures = [BaseFixture, ContentFixtures]
1272
1273
    def test_api__get_file__ok_200__nominal_case(self) -> None:
1274
        """
1275
        Get one file of a content
1276
        """
1277
        dbsession = get_tm_session(self.session_factory, transaction.manager)
1278
        admin = dbsession.query(models.User) \
1279
            .filter(models.User.email == '[email protected]') \
1280
            .one()
1281
        workspace_api = WorkspaceApi(
1282
            current_user=admin,
1283
            session=dbsession,
1284
            config=self.app_config
1285
        )
1286
        content_api = ContentApi(
1287
            current_user=admin,
1288
            session=dbsession,
1289
            config=self.app_config
1290
        )
1291
        business_workspace = workspace_api.get_one(1)
1292
        tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG)
1293
        test_file = content_api.create(
1294
            content_type_slug=CONTENT_TYPES.File.slug,
1295
            workspace=business_workspace,
1296
            parent=tool_folder,
1297
            label='Test file',
1298
            do_save=False,
1299
            do_notify=False,
1300
        )
1301
        content_api.update_file_data(
1302
            test_file,
1303
            'Test_file.txt',
1304
            new_mimetype='plain/text',
1305
            new_content=b'Test file',
1306
        )
1307
        test_file.file_mimetype = test_file.depot_file.content_type
1308
        content_api.update_content(test_file, 'Test_file', '<p>description</p>')  # nopep8
1309
        dbsession.flush()
1310
        transaction.commit()
1311
1312
        self.testapp.authorization = (
1313
            'Basic',
1314
            (
1315
                '[email protected]',
1316
                '[email protected]'
1317
            )
1318
        )
1319
        res = self.testapp.get(
1320
            '/api/v2/workspaces/1/files/{}'.format(test_file.content_id),
1321
            status=200
1322
        )
1323
        content = res.json_body
1324
        assert content['content_type'] == 'file'
1325
        assert content['content_id'] == test_file.content_id
1326
        assert content['is_archived'] is False
1327
        assert content['is_deleted'] is False
1328
        assert content['label'] == 'Test_file'
1329
        assert content['parent_id'] == 1
1330
        assert content['show_in_ui'] is True
1331
        assert content['slug'] == 'test-file'
1332
        assert content['status'] == 'open'
1333
        assert content['workspace_id'] == 1
1334
        assert content['current_revision_id']
1335
        # TODO - G.M - 2018-06-173 - check date format
1336
        assert content['created']
1337
        assert content['author']
1338
        assert content['author']['user_id'] == 1
1339
        assert content['author']['avatar_url'] is None
1340
        assert content['author']['public_name'] == 'Global manager'
1341
        # TODO - G.M - 2018-06-173 - check date format
1342
        assert content['modified']
1343
        assert content['last_modifier'] == content['author']
1344
        assert content['raw_content'] == '<p>description</p>'  # nopep8
1345
        assert content['mimetype'] == 'plain/text'
1346
        assert content['size'] == len(b'Test file')
1347
        assert content['page_nb'] == 1
1348
1349
    def test_api__get_file__ok_200__no_file_add(self) -> None:
1350
        """
@@ 1678-1754 (lines=77) @@
1675
        assert content['size'] == len(b'Test file')
1676
        assert content['page_nb'] == 1
1677
1678
    def test_api__get_file_revisions__ok_200__nominal_case(
1679
            self
1680
    ) -> None:
1681
        """
1682
        Get file revisions
1683
        """
1684
        dbsession = get_tm_session(self.session_factory, transaction.manager)
1685
        admin = dbsession.query(models.User) \
1686
            .filter(models.User.email == '[email protected]') \
1687
            .one()
1688
        workspace_api = WorkspaceApi(
1689
            current_user=admin,
1690
            session=dbsession,
1691
            config=self.app_config
1692
        )
1693
        content_api = ContentApi(
1694
            current_user=admin,
1695
            session=dbsession,
1696
            config=self.app_config
1697
        )
1698
        business_workspace = workspace_api.get_one(1)
1699
        tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG)
1700
        test_file = content_api.create(
1701
            content_type_slug=CONTENT_TYPES.File.slug,
1702
            workspace=business_workspace,
1703
            parent=tool_folder,
1704
            label='Test file',
1705
            do_save=False,
1706
            do_notify=False,
1707
        )
1708
        content_api.update_file_data(
1709
            test_file,
1710
            'Test_file.txt',
1711
            new_mimetype='plain/text',
1712
            new_content=b'Test file',
1713
        )
1714
        content_api.update_content(test_file, 'Test_file', '<p>description</p>')  # nopep8
1715
        dbsession.flush()
1716
        transaction.commit()
1717
1718
        self.testapp.authorization = (
1719
            'Basic',
1720
            (
1721
                '[email protected]',
1722
                '[email protected]'
1723
            )
1724
        )
1725
        res = self.testapp.get(
1726
            '/api/v2/workspaces/1/files/{}/revisions'.format(test_file.content_id),  # nopep8
1727
            status=200
1728
        )
1729
        revisions = res.json_body
1730
        assert len(revisions) == 1
1731
        revision = revisions[0]
1732
        assert revision['content_type'] == 'file'
1733
        assert revision['content_id'] == test_file.content_id
1734
        assert revision['is_archived'] is False
1735
        assert revision['is_deleted'] is False
1736
        assert revision['label'] == 'Test_file'
1737
        assert revision['parent_id'] == 1
1738
        assert revision['show_in_ui'] is True
1739
        assert revision['slug'] == 'test-file'
1740
        assert revision['status'] == 'open'
1741
        assert revision['workspace_id'] == 1
1742
        assert revision['revision_id']
1743
        assert revision['sub_content_types']
1744
        # TODO - G.M - 2018-06-173 - Test with real comments
1745
        assert revision['comment_ids'] == []
1746
        # TODO - G.M - 2018-06-173 - check date format
1747
        assert revision['created']
1748
        assert revision['author']
1749
        assert revision['author']['user_id'] == 1
1750
        assert revision['author']['avatar_url'] is None
1751
        assert revision['author']['public_name'] == 'Global manager'
1752
        assert revision['mimetype'] == 'plain/text'
1753
        assert revision['size'] == len(b'Test file')
1754
        assert revision['page_nb'] == 1
1755
1756
    def test_api__set_file_status__ok_200__nominal_case(self) -> None:
1757
        """