|
|
|
|
@ -29,7 +29,7 @@ from rest_framework import status
|
|
|
|
|
from rest_framework.test import APIClient, APITestCase
|
|
|
|
|
|
|
|
|
|
from cvat.apps.engine.models import (AttributeType, Data, Job, Project,
|
|
|
|
|
Segment, StatusChoice, Task, StorageMethodChoice, UploadedDataStorageLocationChoice as StorageLocation)
|
|
|
|
|
Segment, StatusChoice, Task, StorageMethodChoice, StorageChoice)
|
|
|
|
|
from cvat.apps.engine.prepare import prepare_meta, prepare_meta_for_upload
|
|
|
|
|
|
|
|
|
|
def create_db_users(cls):
|
|
|
|
|
@ -1650,7 +1650,7 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
|
|
|
|
|
def _test_api_v1_tasks_id_data_spec(self, user, spec, data, expected_compressed_type, expected_original_type, image_sizes,
|
|
|
|
|
expected_storage_method=StorageMethodChoice.FILE_SYSTEM,
|
|
|
|
|
expected_uploaded_data_location=StorageLocation.LOCAL):
|
|
|
|
|
expected_uploaded_data_location=StorageChoice.LOCAL):
|
|
|
|
|
# create task
|
|
|
|
|
response = self._create_task(user, spec)
|
|
|
|
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
|
|
|
|
@ -1676,9 +1676,9 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
self.assertEqual(len(image_sizes), task["size"])
|
|
|
|
|
db_data = Task.objects.get(pk=task_id).data
|
|
|
|
|
self.assertEqual(expected_storage_method, db_data.storage_method)
|
|
|
|
|
self.assertEqual(expected_uploaded_data_location, db_data.uploaded_data_storage_location)
|
|
|
|
|
self.assertEqual(expected_uploaded_data_location, db_data.storage)
|
|
|
|
|
# check if used share without copying inside and files doesn`t exist in ../raw/
|
|
|
|
|
if expected_uploaded_data_location is StorageLocation.SHARE:
|
|
|
|
|
if expected_uploaded_data_location is StorageChoice.SHARE:
|
|
|
|
|
self.assertEqual(False,
|
|
|
|
|
os.path.exists(os.path.join(db_data.get_upload_dirname(), next(iter(data.values())))))
|
|
|
|
|
|
|
|
|
|
@ -1798,12 +1798,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET, self.ChunkType.IMAGESET, image_sizes,
|
|
|
|
|
expected_uploaded_data_location=StorageLocation.SHARE)
|
|
|
|
|
expected_uploaded_data_location=StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([('name', 'my task #3')])
|
|
|
|
|
task_data.update([('copy_data', True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET, self.ChunkType.IMAGESET,
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "my video task #4",
|
|
|
|
|
@ -1839,12 +1839,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
image_sizes = self._image_sizes[task_data["server_files[0]"]]
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.VIDEO, self.ChunkType.VIDEO, image_sizes,
|
|
|
|
|
expected_uploaded_data_location=StorageLocation.SHARE)
|
|
|
|
|
expected_uploaded_data_location=StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([('name', 'my video task #6')])
|
|
|
|
|
task_data.update([('copy_data', True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.VIDEO, self.ChunkType.VIDEO,
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "my video task without copying #7",
|
|
|
|
|
@ -1862,12 +1862,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
image_sizes = self._image_sizes[task_data["server_files[0]"]]
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.VIDEO, self.ChunkType.VIDEO, image_sizes,
|
|
|
|
|
expected_uploaded_data_location=StorageLocation.SHARE)
|
|
|
|
|
expected_uploaded_data_location=StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([("name", "my video task #8")])
|
|
|
|
|
task_data.update([("copy_data", True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.VIDEO, self.ChunkType.VIDEO,
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "my video task without copying #9",
|
|
|
|
|
@ -1887,12 +1887,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
image_sizes = self._image_sizes[task_data["server_files[0]"]]
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET, self.ChunkType.VIDEO, image_sizes,
|
|
|
|
|
expected_uploaded_data_location=StorageLocation.SHARE)
|
|
|
|
|
expected_uploaded_data_location=StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([('name', 'my video task #10')])
|
|
|
|
|
task_data.update([('copy_data', True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET, self.ChunkType.VIDEO,
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "my archive task without copying #11",
|
|
|
|
|
@ -1910,12 +1910,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
image_sizes = self._image_sizes[task_data["server_files[0]"]]
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET, self.ChunkType.IMAGESET, image_sizes,
|
|
|
|
|
expected_uploaded_data_location=StorageLocation.SHARE)
|
|
|
|
|
expected_uploaded_data_location=StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([('name', 'my archive task #12')])
|
|
|
|
|
task_data.update([('copy_data', True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET, self.ChunkType.IMAGESET,
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, expected_uploaded_data_location=StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "my archive task #13",
|
|
|
|
|
@ -1953,12 +1953,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
image_sizes = self._image_sizes[task_data["server_files[0]"]]
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.VIDEO,
|
|
|
|
|
self.ChunkType.VIDEO, image_sizes, StorageMethodChoice.CACHE, StorageLocation.SHARE)
|
|
|
|
|
self.ChunkType.VIDEO, image_sizes, StorageMethodChoice.CACHE, StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([('name', 'cached video task #15')])
|
|
|
|
|
task_data.update([('copy_data', True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.VIDEO, self.ChunkType.VIDEO,
|
|
|
|
|
image_sizes, StorageMethodChoice.CACHE, StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, StorageMethodChoice.CACHE, StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "cached images task without copying #16",
|
|
|
|
|
@ -1984,12 +1984,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET,
|
|
|
|
|
self.ChunkType.IMAGESET, image_sizes, StorageMethodChoice.CACHE, StorageLocation.SHARE)
|
|
|
|
|
self.ChunkType.IMAGESET, image_sizes, StorageMethodChoice.CACHE, StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([('name', 'cached images task #17')])
|
|
|
|
|
task_data.update([('copy_data', True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET, self.ChunkType.IMAGESET,
|
|
|
|
|
image_sizes, StorageMethodChoice.CACHE, StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, StorageMethodChoice.CACHE, StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "my cached zip archive task without copying #18",
|
|
|
|
|
@ -2010,12 +2010,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
image_sizes = self._image_sizes[task_data["server_files[0]"]]
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET,
|
|
|
|
|
self.ChunkType.IMAGESET, image_sizes, StorageMethodChoice.CACHE, StorageLocation.SHARE)
|
|
|
|
|
self.ChunkType.IMAGESET, image_sizes, StorageMethodChoice.CACHE, StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([('name', 'my cached zip archive task #19')])
|
|
|
|
|
task_data.update([('copy_data', True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.IMAGESET, self.ChunkType.IMAGESET,
|
|
|
|
|
image_sizes, StorageMethodChoice.CACHE, StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, StorageMethodChoice.CACHE, StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "my cached pdf task #20",
|
|
|
|
|
@ -2083,12 +2083,12 @@ class TaskDataAPITestCase(APITestCase):
|
|
|
|
|
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.VIDEO,
|
|
|
|
|
self.ChunkType.VIDEO, image_sizes, StorageMethodChoice.CACHE,
|
|
|
|
|
StorageLocation.SHARE)
|
|
|
|
|
StorageChoice.SHARE)
|
|
|
|
|
|
|
|
|
|
task_spec.update([('name', 'my video with meta info task #23')])
|
|
|
|
|
task_data.update([('copy_data', True)])
|
|
|
|
|
self._test_api_v1_tasks_id_data_spec(user, task_spec, task_data, self.ChunkType.VIDEO, self.ChunkType.VIDEO,
|
|
|
|
|
image_sizes, StorageMethodChoice.CACHE, StorageLocation.LOCAL)
|
|
|
|
|
image_sizes, StorageMethodChoice.CACHE, StorageChoice.LOCAL)
|
|
|
|
|
|
|
|
|
|
task_spec = {
|
|
|
|
|
"name": "my cached video task #14",
|
|
|
|
|
|