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