Code Duplication    Length = 118-120 lines in 2 locations

backend/tracim_backend/tests/library/test_content_api.py 2 locations

@@ 1130-1249 (lines=120) @@
1127
        eq_('', c.label)
1128
        eq_(ActionDescription.COMMENT, c.revision_type)
1129
1130
    def test_unit_copy_file_different_label_different_parent_ok(self):
1131
        uapi = UserApi(
1132
            session=self.session,
1133
            config=self.app_config,
1134
            current_user=None,
1135
        )
1136
        group_api = GroupApi(
1137
            current_user=None,
1138
            session=self.session,
1139
            config=self.app_config
1140
        )
1141
        groups = [group_api.get_one(Group.TIM_USER),
1142
                  group_api.get_one(Group.TIM_MANAGER),
1143
                  group_api.get_one(Group.TIM_ADMIN)]
1144
1145
        user = uapi.create_minimal_user(
1146
            email='user1@user',
1147
            groups=groups,
1148
            save_now=True
1149
        )
1150
        user2 = uapi.create_minimal_user(
1151
            email='user2@user',
1152
            groups=groups,
1153
            save_now=True
1154
        )
1155
        workspace = WorkspaceApi(
1156
            current_user=user,
1157
            session=self.session,
1158
            config=self.app_config,
1159
        ).create_workspace(
1160
            'test workspace',
1161
            save_now=True
1162
        )
1163
        RoleApi(
1164
            current_user=user,
1165
            session=self.session,
1166
            config=self.app_config,
1167
        ).create_one(
1168
            user2,
1169
            workspace,
1170
            UserRoleInWorkspace.WORKSPACE_MANAGER,
1171
            with_notif=False
1172
        )
1173
        api = ContentApi(
1174
            current_user=user,
1175
            session=self.session,
1176
            config=self.app_config,
1177
        )
1178
        foldera = api.create(
1179
            CONTENT_TYPES.Folder.slug,
1180
            workspace,
1181
            None,
1182
            'folder a',
1183
            '',
1184
            True
1185
        )
1186
        with self.session.no_autoflush:
1187
            text_file = api.create(
1188
                content_type_slug=CONTENT_TYPES.File.slug,
1189
                workspace=workspace,
1190
                parent=foldera,
1191
                label='test_file',
1192
                do_save=False,
1193
            )
1194
            api.update_file_data(
1195
                text_file,
1196
                'test_file',
1197
                'text/plain',
1198
                b'test_content'
1199
            )
1200
1201
        api.save(text_file, ActionDescription.CREATION)
1202
        api2 = ContentApi(
1203
            current_user=user2,
1204
            session=self.session,
1205
            config=self.app_config,
1206
        )
1207
        workspace2 = WorkspaceApi(
1208
            current_user=user2,
1209
            session=self.session,
1210
            config=self.app_config,
1211
        ).create_workspace(
1212
            'test workspace2',
1213
            save_now=True
1214
        )
1215
        folderb = api2.create(
1216
            CONTENT_TYPES.Folder.slug,
1217
            workspace2,
1218
            None,
1219
            'folder b',
1220
            '',
1221
            True
1222
        )
1223
1224
        api2.copy(
1225
            item=text_file,
1226
            new_parent=folderb,
1227
            new_label='test_file_copy'
1228
        )
1229
1230
        transaction.commit()
1231
        text_file_copy = api2.get_one_by_label_and_parent(
1232
            'test_file_copy',
1233
            folderb,
1234
        )
1235
1236
        assert text_file != text_file_copy
1237
        assert text_file_copy.content_id != text_file.content_id
1238
        assert text_file_copy.workspace_id == workspace2.workspace_id
1239
        assert text_file_copy.depot_file.file.read() == text_file.depot_file.file.read()   # nopep8
1240
        assert text_file_copy.depot_file.path != text_file.depot_file.path
1241
        assert text_file_copy.label == 'test_file_copy'
1242
        assert text_file_copy.type == text_file.type
1243
        assert text_file_copy.parent.content_id == folderb.content_id
1244
        assert text_file_copy.owner.user_id == user.user_id
1245
        assert text_file_copy.description == text_file.description
1246
        assert text_file_copy.file_extension == text_file.file_extension
1247
        assert text_file_copy.file_mimetype == text_file.file_mimetype
1248
        assert text_file_copy.revision_type == ActionDescription.COPY
1249
        assert len(text_file_copy.revisions) == len(text_file.revisions) + 1
1250
1251
    def test_unit_copy_file__same_label_different_parent_ok(self):
1252
        uapi = UserApi(
@@ 1251-1368 (lines=118) @@
1248
        assert text_file_copy.revision_type == ActionDescription.COPY
1249
        assert len(text_file_copy.revisions) == len(text_file.revisions) + 1
1250
1251
    def test_unit_copy_file__same_label_different_parent_ok(self):
1252
        uapi = UserApi(
1253
            session=self.session,
1254
            config=self.app_config,
1255
            current_user=None,
1256
        )
1257
        group_api = GroupApi(
1258
            current_user=None,
1259
            session=self.session,
1260
            config=self.app_config,
1261
        )
1262
        groups = [group_api.get_one(Group.TIM_USER),
1263
                  group_api.get_one(Group.TIM_MANAGER),
1264
                  group_api.get_one(Group.TIM_ADMIN)]
1265
1266
        user = uapi.create_minimal_user(
1267
            email='user1@user',
1268
            groups=groups,
1269
            save_now=True
1270
        )
1271
        user2 = uapi.create_minimal_user(
1272
            email='user2@user',
1273
            groups=groups,
1274
            save_now=True
1275
        )
1276
        workspace = WorkspaceApi(
1277
            current_user=user,
1278
            session=self.session,
1279
            config=self.app_config,
1280
        ).create_workspace(
1281
            'test workspace',
1282
            save_now=True
1283
        )
1284
        RoleApi(
1285
            current_user=user,
1286
            session=self.session,
1287
            config=self.app_config,
1288
        ).create_one(
1289
            user2,
1290
            workspace,
1291
            UserRoleInWorkspace.WORKSPACE_MANAGER,
1292
            with_notif=False
1293
        )
1294
        api = ContentApi(
1295
            current_user=user,
1296
            session=self.session,
1297
            config=self.app_config,
1298
        )
1299
        foldera = api.create(
1300
            CONTENT_TYPES.Folder.slug,
1301
            workspace,
1302
            None,
1303
            'folder a',
1304
            '',
1305
            True
1306
        )
1307
        with self.session.no_autoflush:
1308
            text_file = api.create(
1309
                content_type_slug=CONTENT_TYPES.File.slug,
1310
                workspace=workspace,
1311
                parent=foldera,
1312
                label='test_file',
1313
                do_save=False,
1314
            )
1315
            api.update_file_data(
1316
                text_file,
1317
                'test_file',
1318
                'text/plain',
1319
                b'test_content'
1320
            )
1321
1322
        api.save(text_file, ActionDescription.CREATION)
1323
        api2 = ContentApi(
1324
            current_user=user2,
1325
            session=self.session,
1326
            config=self.app_config,
1327
        )
1328
        workspace2 = WorkspaceApi(
1329
            current_user=user2,
1330
            session=self.session,
1331
            config=self.app_config,
1332
        ).create_workspace(
1333
            'test workspace2',
1334
            save_now=True
1335
        )
1336
        folderb = api2.create(
1337
            CONTENT_TYPES.Folder.slug,
1338
            workspace2,
1339
            None,
1340
            'folder b',
1341
            '',
1342
            True
1343
        )
1344
        api2.copy(
1345
            item=text_file,
1346
            new_parent=folderb,
1347
        )
1348
1349
        transaction.commit()
1350
        text_file_copy = api2.get_one_by_label_and_parent(
1351
            'test_file',
1352
            folderb,
1353
        )
1354
1355
        assert text_file != text_file_copy
1356
        assert text_file_copy.content_id != text_file.content_id
1357
        assert text_file_copy.workspace_id == workspace2.workspace_id
1358
        assert text_file_copy.depot_file.file.read() == text_file.depot_file.file.read()  # nopep8
1359
        assert text_file_copy.depot_file.path != text_file.depot_file.path
1360
        assert text_file_copy.label == text_file.label
1361
        assert text_file_copy.type == text_file.type
1362
        assert text_file_copy.parent.content_id == folderb.content_id
1363
        assert text_file_copy.owner.user_id == user.user_id
1364
        assert text_file_copy.description == text_file.description
1365
        assert text_file_copy.file_extension == text_file.file_extension
1366
        assert text_file_copy.file_mimetype == text_file.file_mimetype
1367
        assert text_file_copy.revision_type == ActionDescription.COPY
1368
        assert len(text_file_copy.revisions) == len(text_file.revisions) + 1
1369
1370
    def test_unit_copy_file_different_label_same_parent_ok(self):
1371
        uapi = UserApi(