diff --git a/tests/conftest.py b/tests/conftest.py index fd2a005680..287fe4c55c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,13 +2,10 @@ # Copyright (C) 2022-2024 CVAT.ai Corporation # # SPDX-License-Identifier: MIT -from pathlib import Path from .fixtures import * from .utils.test_utils import TestCaseHelper, TestDir -ASSETS_DIR = Path(__file__).parent / "assets" - def pytest_configure(config): # register additional markers diff --git a/tests/cli/__init__.py b/tests/integration/__init__.py similarity index 100% rename from tests/cli/__init__.py rename to tests/integration/__init__.py diff --git a/tests/integration/cli/__init__.py b/tests/integration/cli/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/cli/test_diff.py b/tests/integration/cli/test_compare.py similarity index 99% rename from tests/cli/test_diff.py rename to tests/integration/cli/test_compare.py index baaebbd310..5de596f48e 100644 --- a/tests/cli/test_diff.py +++ b/tests/integration/cli/test_compare.py @@ -23,8 +23,7 @@ from datumaro.components.operations import DistanceComparator from datumaro.components.project import Dataset -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_describe_downloads.py b/tests/integration/cli/test_describe_downloads.py similarity index 98% rename from tests/cli/test_describe_downloads.py rename to tests/integration/cli/test_describe_downloads.py index db871849fc..e2b3f85c47 100644 --- a/tests/cli/test_describe_downloads.py +++ b/tests/integration/cli/test_describe_downloads.py @@ -7,8 +7,7 @@ from datumaro.components.extractor_tfds import AVAILABLE_TFDS_DATASETS, TFDS_EXTRACTOR_AVAILABLE from datumaro.util import parse_json -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, mock_tfds_data from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_detect_format.py b/tests/integration/cli/test_detect_format.py similarity index 95% rename from tests/cli/test_detect_format.py rename to tests/integration/cli/test_detect_format.py index 70c2126521..f3b8997f5e 100644 --- a/tests/cli/test_detect_format.py +++ b/tests/integration/cli/test_detect_format.py @@ -13,12 +13,13 @@ from datumaro.util.os_util import suppress_output from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir from tests.utils.test_utils import run_datum as run -ADE20K2017_DIR = osp.join(osp.dirname(__file__), "../assets/ade20k2017_dataset/dataset") -ADE20K2020_DIR = osp.join(osp.dirname(__file__), "../assets/ade20k2020_dataset/dataset") -LFW_DIR = osp.join(osp.dirname(__file__), "../assets/lfw_dataset") +ADE20K2017_DIR = get_test_asset_path("ade20k2017_dataset", "dataset") +ADE20K2020_DIR = get_test_asset_path("ade20k2020_dataset", "dataset") +LFW_DIR = get_test_asset_path("lfw_dataset") class DetectFormatTest(TestCase): diff --git a/tests/cli/test_download.py b/tests/integration/cli/test_download.py similarity index 98% rename from tests/cli/test_download.py rename to tests/integration/cli/test_download.py index b37f525d08..a792cb5890 100644 --- a/tests/cli/test_download.py +++ b/tests/integration/cli/test_download.py @@ -5,8 +5,7 @@ from datumaro.components.dataset import Dataset from datumaro.components.extractor_tfds import AVAILABLE_TFDS_DATASETS, TFDS_EXTRACTOR_AVAILABLE -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets, mock_tfds_data from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_filter.py b/tests/integration/cli/test_filter.py similarity index 98% rename from tests/cli/test_filter.py rename to tests/integration/cli/test_filter.py index 949d85995c..e2f1c926eb 100644 --- a/tests/cli/test_filter.py +++ b/tests/integration/cli/test_filter.py @@ -8,8 +8,7 @@ from datumaro.components.project import Project from datumaro.util.scope import scope_add, scoped -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_generator.py b/tests/integration/cli/test_generator.py similarity index 97% rename from tests/cli/test_generator.py rename to tests/integration/cli/test_generator.py index 9f5331babf..9b6be5470e 100644 --- a/tests/cli/test_generator.py +++ b/tests/integration/cli/test_generator.py @@ -6,8 +6,7 @@ import datumaro.util.image as image_module -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_image_zip_format.py b/tests/integration/cli/test_image_zip_format.py similarity index 98% rename from tests/cli/test_image_zip_format.py rename to tests/integration/cli/test_image_zip_format.py index e8a9cda43e..10c6036161 100644 --- a/tests/cli/test_image_zip_format.py +++ b/tests/integration/cli/test_image_zip_format.py @@ -8,8 +8,7 @@ from datumaro.components.dataset import Dataset, DatasetItem from datumaro.components.media import Image -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_info.py b/tests/integration/cli/test_info.py similarity index 96% rename from tests/cli/test_info.py rename to tests/integration/cli/test_info.py index ece8f514b4..eba07c163a 100644 --- a/tests/cli/test_info.py +++ b/tests/integration/cli/test_info.py @@ -10,8 +10,7 @@ from datumaro.util import parse_json -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import run_datum DUMMY_DATASET_DIR = osp.join( diff --git a/tests/cli/test_kitti_raw_format.py b/tests/integration/cli/test_kitti_raw_format.py similarity index 98% rename from tests/cli/test_kitti_raw_format.py rename to tests/integration/cli/test_kitti_raw_format.py index 08701a5077..dc5270cb46 100644 --- a/tests/cli/test_kitti_raw_format.py +++ b/tests/integration/cli/test_kitti_raw_format.py @@ -6,8 +6,7 @@ from datumaro.components.extractor import DatasetItem from datumaro.components.media import Image, PointCloud -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets_3d from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_merge.py b/tests/integration/cli/test_merge.py similarity index 99% rename from tests/cli/test_merge.py rename to tests/integration/cli/test_merge.py index b2222483f9..309905d2cd 100644 --- a/tests/cli/test_merge.py +++ b/tests/integration/cli/test_merge.py @@ -9,8 +9,7 @@ from datumaro.components.media import Image from datumaro.components.project import Dataset, Project -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_patch.py b/tests/integration/cli/test_patch.py similarity index 99% rename from tests/cli/test_patch.py rename to tests/integration/cli/test_patch.py index e85a518b89..1fa03038de 100644 --- a/tests/cli/test_patch.py +++ b/tests/integration/cli/test_patch.py @@ -9,8 +9,7 @@ from datumaro.components.media import Image from datumaro.components.project import Dataset, Project -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_project.py b/tests/integration/cli/test_project.py similarity index 99% rename from tests/cli/test_project.py rename to tests/integration/cli/test_project.py index af818dcf12..98d0abaa9e 100644 --- a/tests/cli/test_project.py +++ b/tests/integration/cli/test_project.py @@ -11,8 +11,7 @@ from datumaro.components.project import Project from datumaro.util.scope import scope_add, scoped -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets, compare_dirs from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_revpath.py b/tests/integration/cli/test_revpath.py similarity index 97% rename from tests/cli/test_revpath.py rename to tests/integration/cli/test_revpath.py index 8916c43bb8..599c6aea81 100644 --- a/tests/cli/test_revpath.py +++ b/tests/integration/cli/test_revpath.py @@ -14,9 +14,8 @@ from datumaro.components.project import Project from datumaro.util.scope import scope_add, scoped -from ..conftest import ASSETS_DIR -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir @@ -140,7 +139,7 @@ def test_ambiguous_format(self): ("ade20k2017_dataset", "1_atr.txt"), ("ade20k2020_dataset", "1.json"), ): - asset = ASSETS_DIR / root / "dataset" / "training" / "street" / asset_name + asset = get_test_asset_path(root, "dataset", "training", "street", asset_name) shutil.copy(asset, annotation_dir) with self.subTest("no context"): diff --git a/tests/cli/test_sly_point_cloud_format.py b/tests/integration/cli/test_sly_point_cloud_format.py similarity index 98% rename from tests/cli/test_sly_point_cloud_format.py rename to tests/integration/cli/test_sly_point_cloud_format.py index a574a81ece..88fa945733 100644 --- a/tests/cli/test_sly_point_cloud_format.py +++ b/tests/integration/cli/test_sly_point_cloud_format.py @@ -6,8 +6,7 @@ from datumaro.components.extractor import DatasetItem from datumaro.components.media import Image, PointCloud -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets_3d from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_transform.py b/tests/integration/cli/test_transform.py similarity index 98% rename from tests/cli/test_transform.py rename to tests/integration/cli/test_transform.py index d638abfc15..08a415e06e 100644 --- a/tests/cli/test_transform.py +++ b/tests/integration/cli/test_transform.py @@ -8,8 +8,7 @@ from datumaro.components.project import Project from datumaro.util.scope import scope_add, scoped -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_utils.py b/tests/integration/cli/test_utils.py similarity index 89% rename from tests/cli/test_utils.py rename to tests/integration/cli/test_utils.py index cba1363ed8..3060a8ff4f 100644 --- a/tests/cli/test_utils.py +++ b/tests/integration/cli/test_utils.py @@ -5,11 +5,10 @@ from datumaro.components.media_manager import MediaManager from datumaro.util.scope import on_exit_do, scope_add, scoped -from ..requirements import Requirements, mark_requirement -from ..test_video import make_sample_video # pylint: disable=unused-import - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir from tests.utils.test_utils import run_datum as run +from tests.utils.video import make_sample_video class VideoSplittingTest: diff --git a/tests/cli/test_video.py b/tests/integration/cli/test_video.py similarity index 93% rename from tests/cli/test_video.py rename to tests/integration/cli/test_video.py index a76c6e5551..e753977ca4 100644 --- a/tests/cli/test_video.py +++ b/tests/integration/cli/test_video.py @@ -2,11 +2,10 @@ import os.path as osp from unittest import TestCase -from ..requirements import Requirements, mark_requirement - -from tests.test_video import make_sample_video +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir from tests.utils.test_utils import run_datum as run +from tests.utils.video import make_sample_video class VideoTest(TestCase): diff --git a/tests/cli/test_voc_format.py b/tests/integration/cli/test_voc_format.py similarity index 99% rename from tests/cli/test_voc_format.py rename to tests/integration/cli/test_voc_format.py index b3bc60055f..2d90ff2e9e 100644 --- a/tests/cli/test_voc_format.py +++ b/tests/integration/cli/test_voc_format.py @@ -9,8 +9,7 @@ from datumaro.components.dataset import Dataset, DatasetItem from datumaro.components.media import Image -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets from tests.utils.test_utils import run_datum as run diff --git a/tests/cli/test_yolo_format.py b/tests/integration/cli/test_yolo_format.py similarity index 99% rename from tests/cli/test_yolo_format.py rename to tests/integration/cli/test_yolo_format.py index 528bb53a50..c80ca1ed34 100644 --- a/tests/cli/test_yolo_format.py +++ b/tests/integration/cli/test_yolo_format.py @@ -9,8 +9,7 @@ from datumaro.components.extractor import DatasetItem from datumaro.components.media import Image -from ..requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets from tests.utils.test_utils import run_datum as run diff --git a/tests/unit/algorithms/__init__.py b/tests/unit/algorithms/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_RISE.py b/tests/unit/algorithms/test_RISE.py similarity index 99% rename from tests/test_RISE.py rename to tests/unit/algorithms/test_RISE.py index ab55b88eac..dd08469cd2 100644 --- a/tests/test_RISE.py +++ b/tests/unit/algorithms/test_RISE.py @@ -7,7 +7,7 @@ from datumaro.components.annotation import Bbox, Label from datumaro.components.launcher import Launcher -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement class RiseTest(TestCase): diff --git a/tests/unit/data_formats/datumaro/__init__.py b/tests/unit/data_formats/datumaro/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/test_datumaro_format.py b/tests/unit/data_formats/datumaro/test_datumaro_format.py similarity index 98% rename from tests/test_datumaro_format.py rename to tests/unit/data_formats/datumaro/test_datumaro_format.py index 91611d9ef4..748dc168b0 100644 --- a/tests/test_datumaro_format.py +++ b/tests/unit/data_formats/datumaro/test_datumaro_format.py @@ -30,8 +30,8 @@ from datumaro.util import parse_json_file from datumaro.util.mask_tools import generate_colormap -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import ( Dimensions, TestDir, @@ -203,7 +203,7 @@ def test_can_save_and_load_with_no_save_media(self): @mark_requirement(Requirements.DATUM_GENERAL_REQ) def test_can_import_pcd_dataset(self): - dataset_path = str(Path(__file__).parent / "assets" / "datumaro_dataset" / "with_pcd") + dataset_path = get_test_asset_path("datumaro_dataset", "with_pcd") label_categories = LabelCategories(attributes={"occluded"}) label_categories.add("cat") @@ -254,7 +254,7 @@ def test_can_import_pcd_dataset(self): @mark_requirement(Requirements.DATUM_GENERAL_REQ) def test_can_import_skeleton_dataset(self): - dataset_path = str(Path(__file__).parent / "assets" / "datumaro_dataset" / "with_skeleton") + dataset_path = get_test_asset_path("datumaro_dataset", "with_skeleton") label_categories = LabelCategories.from_iterable( [ diff --git a/tests/test_common_semantic_segmentation_format.py b/tests/unit/data_formats/test_common_semantic_segmentation_format.py similarity index 94% rename from tests/test_common_semantic_segmentation_format.py rename to tests/unit/data_formats/test_common_semantic_segmentation_format.py index 95dade3fd5..c4aaa05680 100644 --- a/tests/test_common_semantic_segmentation_format.py +++ b/tests/unit/data_formats/test_common_semantic_segmentation_format.py @@ -1,4 +1,3 @@ -import os.path as osp from collections import OrderedDict from unittest import TestCase @@ -14,17 +13,13 @@ make_categories, ) -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join( - osp.dirname(__file__), "assets", "common_semantic_segmentation_dataset", "dataset" -) +DUMMY_DATASET_DIR = get_test_asset_path("common_semantic_segmentation_dataset", "dataset") -DUMMY_NON_STANDARD_DATASET_DIR = osp.join( - osp.dirname(__file__), - "assets", +DUMMY_NON_STANDARD_DATASET_DIR = get_test_asset_path( "common_semantic_segmentation_dataset", "non_standard_dataset", ) diff --git a/tests/test_mapillary_vistas_format.py b/tests/unit/data_formats/test_mapillary_vistas_format.py similarity index 98% rename from tests/test_mapillary_vistas_format.py rename to tests/unit/data_formats/test_mapillary_vistas_format.py index bf11d04cad..9e9bb84018 100644 --- a/tests/test_mapillary_vistas_format.py +++ b/tests/unit/data_formats/test_mapillary_vistas_format.py @@ -18,14 +18,14 @@ make_mapillary_instance_categories, ) -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets -DUMMY_DATASET_V1_2 = osp.join(osp.dirname(__file__), "assets", "mapillary_vistas_dataset", "v1.2") -DUMMY_DATASET_V2_0 = osp.join(osp.dirname(__file__), "assets", "mapillary_vistas_dataset", "v2.0") -DUMMY_DATASET_WITH_META_FILE = osp.join( - osp.dirname(__file__), "assets", "mapillary_vistas_dataset", "dataset_with_meta_file" +DUMMY_DATASET_V1_2 = get_test_asset_path("mapillary_vistas_dataset", "v1.2") +DUMMY_DATASET_V2_0 = get_test_asset_path("mapillary_vistas_dataset", "v2.0") +DUMMY_DATASET_WITH_META_FILE = get_test_asset_path( + "mapillary_vistas_dataset", "dataset_with_meta_file" ) diff --git a/tests/test_synthia_format.py b/tests/unit/data_formats/test_synthia_format.py similarity index 94% rename from tests/test_synthia_format.py rename to tests/unit/data_formats/test_synthia_format.py index 08c20ccef4..1dea886c33 100644 --- a/tests/test_synthia_format.py +++ b/tests/unit/data_formats/test_synthia_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -10,25 +9,19 @@ from datumaro.components.extractor import DatasetItem from datumaro.components.media import Image -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_LABELS_SEGM_DATASET_DIR = osp.join( - osp.dirname(__file__), "assets", "synthia_dataset", "labels_segm_dataset" -) +DUMMY_LABELS_SEGM_DATASET_DIR = get_test_asset_path("synthia_dataset", "labels_segm_dataset") -DUMMY_COLOR_SEGM_DATASET_DIR = osp.join( - osp.dirname(__file__), "assets", "synthia_dataset", "color_segm_dataset" -) +DUMMY_COLOR_SEGM_DATASET_DIR = get_test_asset_path("synthia_dataset", "color_segm_dataset") -DUMMY_DATASET_DIR_CUSTOM_LABELMAP = osp.join( - osp.dirname(__file__), "assets", "synthia_dataset", "dataset_with_custom_labelmap" +DUMMY_DATASET_DIR_CUSTOM_LABELMAP = get_test_asset_path( + "synthia_dataset", "dataset_with_custom_labelmap" ) -DUMMY_DATASET_DIR_META_FILE = osp.join( - osp.dirname(__file__), "assets", "synthia_dataset", "dataset_with_meta_file" -) +DUMMY_DATASET_DIR_META_FILE = get_test_asset_path("synthia_dataset", "dataset_with_meta_file") class SynthiaImporterTest(TestCase): diff --git a/tests/unit/data_formats/test_yolo_format.py b/tests/unit/data_formats/test_yolo_format.py index b384200274..99e1d29da0 100644 --- a/tests/unit/data_formats/test_yolo_format.py +++ b/tests/unit/data_formats/test_yolo_format.py @@ -65,9 +65,8 @@ ) from datumaro.util.image import save_image -from ...requirements import Requirements, mark_requirement -from ...utils.assets import get_test_asset_path - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_annotations, compare_datasets, compare_datasets_strict diff --git a/tests/test_ade20k2017_format.py b/tests/unit/test_ade20k2017_format.py similarity index 94% rename from tests/test_ade20k2017_format.py rename to tests/unit/test_ade20k2017_format.py index bc6496ca58..0fe8f29f43 100644 --- a/tests/test_ade20k2017_format.py +++ b/tests/unit/test_ade20k2017_format.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: MIT -import os.path as osp from unittest.case import TestCase import numpy as np @@ -14,13 +13,12 @@ from datumaro.plugins.ade20k2017_format import Ade20k2017Importer from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "ade20k2017_dataset", "dataset") +DUMMY_DATASET_DIR = get_test_asset_path("ade20k2017_dataset", "dataset") -DUMMY_DATASET_DIR_META_FILE = osp.join( - osp.dirname(__file__), "assets", "ade20k2017_dataset", "dataset_with_meta_file" -) +DUMMY_DATASET_DIR_META_FILE = get_test_asset_path("ade20k2017_dataset", "dataset_with_meta_file") class Ade20k2017ImporterTest(TestCase): diff --git a/tests/test_ade20k2020_format.py b/tests/unit/test_ade20k2020_format.py similarity index 97% rename from tests/test_ade20k2020_format.py rename to tests/unit/test_ade20k2020_format.py index a9b054bd89..179d5a841a 100644 --- a/tests/test_ade20k2020_format.py +++ b/tests/unit/test_ade20k2020_format.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: MIT -import os.path as osp from unittest.case import TestCase import numpy as np @@ -14,13 +13,12 @@ from datumaro.plugins.ade20k2020_format import Ade20k2020Importer from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "ade20k2020_dataset", "dataset") +DUMMY_DATASET_DIR = get_test_asset_path("ade20k2020_dataset", "dataset") -DUMMY_DATASET_DIR_META_FILE = osp.join( - osp.dirname(__file__), "assets", "ade20k2020_dataset", "dataset_with_meta_file" -) +DUMMY_DATASET_DIR_META_FILE = get_test_asset_path("ade20k2020_dataset", "dataset_with_meta_file") class Ade20k2020ImporterTest(TestCase): diff --git a/tests/test_align_celeba_format.py b/tests/unit/test_align_celeba_format.py similarity index 94% rename from tests/test_align_celeba_format.py rename to tests/unit/test_align_celeba_format.py index 3ae89bfbce..76cdf11af0 100644 --- a/tests/test_align_celeba_format.py +++ b/tests/unit/test_align_celeba_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -16,15 +15,13 @@ from datumaro.components.media import Image from datumaro.plugins.align_celeba_format import AlignCelebaImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_ALIGN_DATASET_DIR = osp.join( - osp.dirname(__file__), "assets", "align_celeba_dataset", "dataset" -) -DUMMY_ALIGN_DATASET_DIR_WITH_META_FILE = osp.join( - osp.dirname(__file__), "assets", "align_celeba_dataset", "dataset_with_meta_file" +DUMMY_ALIGN_DATASET_DIR = get_test_asset_path("align_celeba_dataset", "dataset") +DUMMY_ALIGN_DATASET_DIR_WITH_META_FILE = get_test_asset_path( + "align_celeba_dataset", "dataset_with_meta_file" ) diff --git a/tests/test_annotation_util.py b/tests/unit/test_annotation_util.py similarity index 98% rename from tests/test_annotation_util.py rename to tests/unit/test_annotation_util.py index 534597ddaf..4838fc22f8 100644 --- a/tests/test_annotation_util.py +++ b/tests/unit/test_annotation_util.py @@ -8,7 +8,7 @@ from datumaro.components.annotation import Bbox, Mask, Polygon from datumaro.util.annotation_util import SpatialAnnotation, get_bbox, segment_iou -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement class SegmentIouTest: diff --git a/tests/test_api.py b/tests/unit/test_api.py similarity index 92% rename from tests/test_api.py rename to tests/unit/test_api.py index a287c6127e..46ef2351ab 100644 --- a/tests/test_api.py +++ b/tests/unit/test_api.py @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: MIT -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement class ApiTest: diff --git a/tests/test_brats_format.py b/tests/unit/test_brats_format.py similarity index 92% rename from tests/test_brats_format.py rename to tests/unit/test_brats_format.py index ad126d792e..f144b7da4b 100644 --- a/tests/test_brats_format.py +++ b/tests/unit/test_brats_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -10,11 +9,11 @@ from datumaro.components.media import MultiframeImage from datumaro.plugins.brats_format import BratsImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "brats_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("brats_dataset") class BratsImporterTest(TestCase): diff --git a/tests/test_brats_numpy_format.py b/tests/unit/test_brats_numpy_format.py similarity index 94% rename from tests/test_brats_numpy_format.py rename to tests/unit/test_brats_numpy_format.py index 1930a0c51a..7bc1f5f72e 100644 --- a/tests/test_brats_numpy_format.py +++ b/tests/unit/test_brats_numpy_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -10,11 +9,11 @@ from datumaro.components.media import MultiframeImage from datumaro.plugins.brats_numpy_format import BratsNumpyImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "brats_numpy_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("brats_numpy_dataset") class BratsNumpyImporterTest(TestCase): diff --git a/tests/test_camvid_format.py b/tests/unit/test_camvid_format.py similarity index 99% rename from tests/test_camvid_format.py rename to tests/unit/test_camvid_format.py index aa9dd7fcc5..9fb001438e 100644 --- a/tests/test_camvid_format.py +++ b/tests/unit/test_camvid_format.py @@ -15,8 +15,8 @@ from datumaro.plugins.camvid_format import CamvidConverter, CamvidImporter from datumaro.util.meta_file_util import parse_meta_file -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, check_save_and_load, compare_datasets @@ -47,7 +47,7 @@ def test_can_write_and_parse_meta_file(self): self.assertEqual(src_label_map, dst_label_map) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "camvid_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("camvid_dataset") class TestExtractorBase(Extractor): diff --git a/tests/test_celeba_format.py b/tests/unit/test_celeba_format.py similarity index 95% rename from tests/test_celeba_format.py rename to tests/unit/test_celeba_format.py index 5900511b73..9b444c5a19 100644 --- a/tests/test_celeba_format.py +++ b/tests/unit/test_celeba_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -17,14 +16,12 @@ from datumaro.components.media import Image from datumaro.plugins.celeba_format import CelebaImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "celeba_dataset", "dataset") -DUMMY_DATASET_DIR_WITH_META_FILE = osp.join( - osp.dirname(__file__), "assets", "celeba_dataset", "dataset_with_meta_file" -) +DUMMY_DATASET_DIR = get_test_asset_path("celeba_dataset", "dataset") +DUMMY_DATASET_DIR_WITH_META_FILE = get_test_asset_path("celeba_dataset", "dataset_with_meta_file") class CelebaImporterTest(TestCase): diff --git a/tests/test_cifar_format.py b/tests/unit/test_cifar_format.py similarity index 98% rename from tests/test_cifar_format.py rename to tests/unit/test_cifar_format.py index 1a04d2f44d..f3e3541c45 100644 --- a/tests/test_cifar_format.py +++ b/tests/unit/test_cifar_format.py @@ -12,8 +12,8 @@ from datumaro.components.media import Image from datumaro.plugins.cifar_format import CifarConverter, CifarImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -260,9 +260,9 @@ def test_can_save_and_load_with_meta_file(self): compare_datasets(self, source_dataset, parsed_dataset, require_media=True) -DUMMY_10_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "cifar10_dataset") +DUMMY_10_DATASET_DIR = get_test_asset_path("cifar10_dataset") -DUMMY_100_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "cifar100_dataset") +DUMMY_100_DATASET_DIR = get_test_asset_path("cifar100_dataset") class CifarImporterTest(TestCase): diff --git a/tests/test_cityscapes_format.py b/tests/unit/test_cityscapes_format.py similarity index 99% rename from tests/test_cityscapes_format.py rename to tests/unit/test_cityscapes_format.py index 28caff0aa9..77e4ae84a3 100644 --- a/tests/test_cityscapes_format.py +++ b/tests/unit/test_cityscapes_format.py @@ -19,14 +19,12 @@ ) from datumaro.util.meta_file_util import parse_meta_file -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import IGNORE_ALL, TestDir, check_save_and_load, compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "cityscapes_dataset", "dataset") -DUMMY_TRAIN_DATASET_DIR = osp.join( - osp.dirname(__file__), "assets", "cityscapes_dataset", "train_dataset" -) +DUMMY_DATASET_DIR = get_test_asset_path("cityscapes_dataset", "dataset") +DUMMY_TRAIN_DATASET_DIR = get_test_asset_path("cityscapes_dataset", "train_dataset") class CityscapesFormatTest(TestCase): diff --git a/tests/test_coco_format.py b/tests/unit/test_coco_format.py similarity index 99% rename from tests/test_coco_format.py rename to tests/unit/test_coco_format.py index aea659492c..966ad6fbc7 100644 --- a/tests/test_coco_format.py +++ b/tests/unit/test_coco_format.py @@ -47,8 +47,8 @@ from datumaro.plugins.coco_format.importer import CocoImporter from datumaro.util import dump_json_file -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import ( TestDir, check_save_and_load, @@ -56,7 +56,7 @@ compare_datasets_strict, ) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "coco_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("coco_dataset") class CocoImporterTest(TestCase): diff --git a/tests/test_common_super_resolution_format.py b/tests/unit/test_common_super_resolution_format.py similarity index 90% rename from tests/test_common_super_resolution_format.py rename to tests/unit/test_common_super_resolution_format.py index c30941cf44..e5e03fe0c8 100644 --- a/tests/test_common_super_resolution_format.py +++ b/tests/unit/test_common_super_resolution_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -10,11 +9,11 @@ from datumaro.components.media import Image from datumaro.plugins.common_super_resolution_format import CommonSuperResolutionImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "common_super_resolution_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("common_super_resolution_dataset") class CommonSuperResolutionImporterTest(TestCase): diff --git a/tests/test_diff.py b/tests/unit/test_compare.py similarity index 99% rename from tests/test_diff.py rename to tests/unit/test_compare.py index 30a394a51e..846b1f8c2b 100644 --- a/tests/test_diff.py +++ b/tests/unit/test_compare.py @@ -18,7 +18,7 @@ from datumaro.components.operations import DistanceComparator, ExactComparator from datumaro.components.project import Dataset -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement class DistanceComparatorTest(TestCase): diff --git a/tests/test_config.py b/tests/unit/test_config.py similarity index 98% rename from tests/test_config.py rename to tests/unit/test_config.py index 8d8cd7c4bf..f10ff615a9 100644 --- a/tests/test_config.py +++ b/tests/unit/test_config.py @@ -8,8 +8,7 @@ from datumaro.components.config import Config, DictConfig, SchemaBuilder from datumaro.components.errors import ImmutableObjectError -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir diff --git a/tests/test_cvat_format.py b/tests/unit/test_cvat_format.py similarity index 99% rename from tests/test_cvat_format.py rename to tests/unit/test_cvat_format.py index 6cb7141b12..1a5be3ebfa 100644 --- a/tests/test_cvat_format.py +++ b/tests/unit/test_cvat_format.py @@ -23,13 +23,13 @@ from datumaro.plugins.cvat_format.converter import CvatConverter from datumaro.plugins.cvat_format.extractor import CvatImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, check_save_and_load, compare_datasets -DUMMY_IMAGE_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "cvat_dataset", "for_images") +DUMMY_IMAGE_DATASET_DIR = get_test_asset_path("cvat_dataset", "for_images") -DUMMY_VIDEO_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "cvat_dataset", "for_video") +DUMMY_VIDEO_DATASET_DIR = get_test_asset_path("cvat_dataset", "for_video") class CvatImporterTest(TestCase): diff --git a/tests/test_dataset.py b/tests/unit/test_dataset.py similarity index 99% rename from tests/test_dataset.py rename to tests/unit/test_dataset.py index 75b30e968c..9af0e574ce 100644 --- a/tests/test_dataset.py +++ b/tests/unit/test_dataset.py @@ -53,8 +53,7 @@ from datumaro.components.media import Image, MediaElement, Video from datumaro.components.progress_reporting import NullProgressReporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets, compare_datasets_strict diff --git a/tests/test_extractor_tfds.py b/tests/unit/test_extractor_tfds.py similarity index 100% rename from tests/test_extractor_tfds.py rename to tests/unit/test_extractor_tfds.py diff --git a/tests/test_format_detection.py b/tests/unit/test_format_detection.py similarity index 100% rename from tests/test_format_detection.py rename to tests/unit/test_format_detection.py diff --git a/tests/test_fractal_image_generator.py b/tests/unit/test_fractal_image_generator.py similarity index 89% rename from tests/test_fractal_image_generator.py rename to tests/unit/test_fractal_image_generator.py index a14551f7b7..c4385452ee 100644 --- a/tests/test_fractal_image_generator.py +++ b/tests/unit/test_fractal_image_generator.py @@ -8,8 +8,8 @@ from datumaro.plugins.synthetic_data import FractalImageGenerator from datumaro.util.image import load_image -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir @@ -34,7 +34,7 @@ def test_save_image_can_create_dir(self): @mark_requirement(Requirements.DATUM_677) def test_can_generate_image(self): - ref_dir = osp.join(osp.dirname(__file__), "assets", "synthetic_dataset", "images") + ref_dir = get_test_asset_path("synthetic_dataset", "images") with TestDir() as test_dir: dataset_size = 3 FractalImageGenerator(test_dir, dataset_size, shape=[24, 36]).generate_dataset() diff --git a/tests/test_icdar_format.py b/tests/unit/test_icdar_format.py similarity index 99% rename from tests/test_icdar_format.py rename to tests/unit/test_icdar_format.py index 978da0d4d1..477cee6aea 100644 --- a/tests/test_icdar_format.py +++ b/tests/unit/test_icdar_format.py @@ -20,11 +20,11 @@ IcdarWordRecognitionImporter, ) -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, check_save_and_load, compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "icdar_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("icdar_dataset") class IcdarImporterTest(TestCase): diff --git a/tests/test_image.py b/tests/unit/test_image.py similarity index 97% rename from tests/test_image.py rename to tests/unit/test_image.py index 2f1f5b6d32..81d573cda7 100644 --- a/tests/test_image.py +++ b/tests/unit/test_image.py @@ -6,8 +6,7 @@ import datumaro.util.image as image_module -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir diff --git a/tests/test_image_dir_format.py b/tests/unit/test_image_dir_format.py similarity index 97% rename from tests/test_image_dir_format.py rename to tests/unit/test_image_dir_format.py index 2908cb4da2..2b70957699 100644 --- a/tests/test_image_dir_format.py +++ b/tests/unit/test_image_dir_format.py @@ -7,8 +7,7 @@ from datumaro.components.project import Dataset from datumaro.plugins.image_dir_format import ImageDirConverter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, check_save_and_load diff --git a/tests/test_image_zip_format.py b/tests/unit/test_image_zip_format.py similarity index 96% rename from tests/test_image_zip_format.py rename to tests/unit/test_image_zip_format.py index 2155b90baa..c7a4574179 100644 --- a/tests/test_image_zip_format.py +++ b/tests/unit/test_image_zip_format.py @@ -8,8 +8,8 @@ from datumaro.components.project import Dataset from datumaro.plugins.image_zip_format import ImageZipConverter, ImageZipPath -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -92,7 +92,7 @@ def test_can_save_and_load_with_arbitrary_extensions(self): self._test_can_save_and_load(source_dataset, test_dir) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "image_zip_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("image_zip_dataset") class ImageZipImporterTest(TestCase): diff --git a/tests/test_imagenet_format.py b/tests/unit/test_imagenet_format.py similarity index 97% rename from tests/test_imagenet_format.py rename to tests/unit/test_imagenet_format.py index 5471855e15..ded63ae297 100644 --- a/tests/test_imagenet_format.py +++ b/tests/unit/test_imagenet_format.py @@ -1,4 +1,3 @@ -import os.path as osp import pickle # nosec - disable B403:import_pickle check from unittest import TestCase @@ -11,8 +10,8 @@ from datumaro.components.media import Image from datumaro.plugins.imagenet_format import ImagenetConverter, ImagenetImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets, compare_datasets_strict @@ -116,7 +115,7 @@ def test_can_save_and_load_image_with_arbitrary_extension(self): compare_datasets(self, dataset, parsed_dataset, require_media=True) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "imagenet_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("imagenet_dataset") class ImagenetImporterTest(TestCase): diff --git a/tests/test_imagenet_txt_format.py b/tests/unit/test_imagenet_txt_format.py similarity index 95% rename from tests/test_imagenet_txt_format.py rename to tests/unit/test_imagenet_txt_format.py index b736f90400..eb8b8f386c 100644 --- a/tests/test_imagenet_txt_format.py +++ b/tests/unit/test_imagenet_txt_format.py @@ -10,8 +10,8 @@ from datumaro.components.media import Image from datumaro.plugins.imagenet_txt_format import ImagenetTxtConverter, ImagenetTxtImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -167,13 +167,9 @@ def test_can_save_and_load_image_with_arbitrary_extension(self): compare_datasets(self, dataset, parsed_dataset, require_media=True) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets/imagenet_txt_dataset/basic") -DUMMY_DATASET_WITH_CUSTOM_LABELS_DIR = osp.join( - osp.dirname(__file__), "assets/imagenet_txt_dataset/custom_labels" -) -DUMMY_DATASET_WITH_NO_LABELS_DIR = osp.join( - osp.dirname(__file__), "assets/imagenet_txt_dataset/no_labels" -) +DUMMY_DATASET_DIR = get_test_asset_path("imagenet_txt_dataset", "basic") +DUMMY_DATASET_WITH_CUSTOM_LABELS_DIR = get_test_asset_path("imagenet_txt_dataset", "custom_labels") +DUMMY_DATASET_WITH_NO_LABELS_DIR = get_test_asset_path("imagenet_txt_dataset", "no_labels") class ImagenetTxtImporterTest(TestCase): diff --git a/tests/test_images.py b/tests/unit/test_images.py similarity index 99% rename from tests/test_images.py rename to tests/unit/test_images.py index b3c71a6095..9a43b2fbb3 100644 --- a/tests/test_images.py +++ b/tests/unit/test_images.py @@ -14,8 +14,7 @@ ) from datumaro.util.image_cache import ImageCache -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir diff --git a/tests/test_kinetics_format.py b/tests/unit/test_kinetics_format.py similarity index 91% rename from tests/test_kinetics_format.py rename to tests/unit/test_kinetics_format.py index df617a6d57..4acc488c0d 100644 --- a/tests/test_kinetics_format.py +++ b/tests/unit/test_kinetics_format.py @@ -1,18 +1,18 @@ -import os.path as osp from unittest import TestCase from datumaro.components.media import Video +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "kinetics_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("kinetics_dataset") from datumaro.components.annotation import Label from datumaro.components.dataset import Dataset, DatasetItem from datumaro.components.environment import Environment from datumaro.plugins.kinetics_format import KineticsImporter -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement class KineticsImporterTest(TestCase): diff --git a/tests/test_kitti_format.py b/tests/unit/test_kitti_format.py similarity index 99% rename from tests/test_kitti_format.py rename to tests/unit/test_kitti_format.py index 4619e78ce9..16a95b8241 100644 --- a/tests/test_kitti_format.py +++ b/tests/unit/test_kitti_format.py @@ -26,11 +26,11 @@ ) from datumaro.util.meta_file_util import parse_meta_file -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, check_save_and_load, compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "kitti_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("kitti_dataset") class KittiFormatTest(TestCase): diff --git a/tests/test_kitti_raw_format.py b/tests/unit/test_kitti_raw_format.py similarity index 99% rename from tests/test_kitti_raw_format.py rename to tests/unit/test_kitti_raw_format.py index 94650521f4..8639d375e5 100644 --- a/tests/test_kitti_raw_format.py +++ b/tests/unit/test_kitti_raw_format.py @@ -12,9 +12,10 @@ from datumaro.plugins.kitti_raw_format.extractor import KittiRawImporter from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import Dimensions, TestDir, check_save_and_load, compare_datasets_3d -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "kitti_dataset", "kitti_raw") +DUMMY_DATASET_DIR = get_test_asset_path("kitti_dataset", "kitti_raw") class KittiRawImporterTest(TestCase): diff --git a/tests/test_label_categories.py b/tests/unit/test_label_categories.py similarity index 100% rename from tests/test_label_categories.py rename to tests/unit/test_label_categories.py diff --git a/tests/test_labelme_format.py b/tests/unit/test_labelme_format.py similarity index 98% rename from tests/test_labelme_format.py rename to tests/unit/test_labelme_format.py index 3509209ff6..6d064c6466 100644 --- a/tests/test_labelme_format.py +++ b/tests/unit/test_labelme_format.py @@ -12,8 +12,8 @@ from datumaro.components.media import Image from datumaro.plugins.labelme_format import LabelMeConverter, LabelMeImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, check_save_and_load, compare_datasets @@ -319,7 +319,7 @@ def test_save_and_load_with_meta_file(self): self.assertTrue(osp.isfile(osp.join(test_dir, "dataset_meta.json"))) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "labelme_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("labelme_dataset") class LabelMeImporterTest(TestCase): diff --git a/tests/test_lfw_format.py b/tests/unit/test_lfw_format.py similarity index 98% rename from tests/test_lfw_format.py rename to tests/unit/test_lfw_format.py index c2e70a6506..8ebae62417 100644 --- a/tests/test_lfw_format.py +++ b/tests/unit/test_lfw_format.py @@ -12,8 +12,8 @@ from datumaro.components.media import Image from datumaro.plugins.lfw_format import LfwConverter, LfwImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -296,7 +296,7 @@ def test_can_save_and_load_with_meta_file(self): compare_datasets(self, source_dataset, parsed_dataset, require_media=True) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "lfw_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("lfw_dataset") class LfwImporterTest(TestCase): diff --git a/tests/test_market1501_format.py b/tests/unit/test_market1501_format.py similarity index 98% rename from tests/test_market1501_format.py rename to tests/unit/test_market1501_format.py index dc36612926..465818e188 100644 --- a/tests/test_market1501_format.py +++ b/tests/unit/test_market1501_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -9,8 +8,8 @@ from datumaro.components.media import Image from datumaro.plugins.market1501_format import Market1501Converter, Market1501Importer -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -209,7 +208,7 @@ def test_can_save_dataset_with_no_attributes(self): compare_datasets(self, source_dataset, parsed_dataset) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "market1501_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("market1501_dataset") class Market1501ImporterTest(TestCase): diff --git a/tests/test_mars_format.py b/tests/unit/test_mars_format.py similarity index 95% rename from tests/test_mars_format.py rename to tests/unit/test_mars_format.py index 664f306b1c..9d67d8c583 100644 --- a/tests/test_mars_format.py +++ b/tests/unit/test_mars_format.py @@ -12,11 +12,11 @@ from datumaro.components.media import Image from datumaro.plugins.mars_format import MarsImporter -from tests.conftest import ASSETS_DIR from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_MARS_DATASET = str(ASSETS_DIR / "mars_dataset") +DUMMY_MARS_DATASET = get_test_asset_path("mars_dataset") class MarsImporterTest(TestCase): diff --git a/tests/test_masks.py b/tests/unit/test_masks.py similarity index 99% rename from tests/test_masks.py rename to tests/unit/test_masks.py index e1e450054c..ee47edeb84 100644 --- a/tests/test_masks.py +++ b/tests/unit/test_masks.py @@ -7,7 +7,7 @@ from datumaro.components.annotation import CompiledMask from datumaro.util.annotation_util import BboxCoords -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement def _compare_polygons(a: mask_tools.Polygon, b: mask_tools.Polygon) -> bool: diff --git a/tests/test_mnist_csv_format.py b/tests/unit/test_mnist_csv_format.py similarity index 98% rename from tests/test_mnist_csv_format.py rename to tests/unit/test_mnist_csv_format.py index ebc4feeef9..19bfa825f8 100644 --- a/tests/test_mnist_csv_format.py +++ b/tests/unit/test_mnist_csv_format.py @@ -10,8 +10,8 @@ from datumaro.components.media import Image from datumaro.plugins.mnist_csv_format import MnistCsvConverter, MnistCsvImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -190,7 +190,7 @@ def test_can_save_and_load_with_meta_file(self): compare_datasets(self, source_dataset, parsed_dataset, require_media=True) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "mnist_csv_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("mnist_csv_dataset") class MnistCsvImporterTest(TestCase): diff --git a/tests/test_mnist_format.py b/tests/unit/test_mnist_format.py similarity index 98% rename from tests/test_mnist_format.py rename to tests/unit/test_mnist_format.py index 05e24c630d..ac2545ddc7 100644 --- a/tests/test_mnist_format.py +++ b/tests/unit/test_mnist_format.py @@ -10,8 +10,8 @@ from datumaro.components.media import Image from datumaro.plugins.mnist_format import MnistConverter, MnistImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -190,7 +190,7 @@ def test_can_save_and_load_with_meta_file(self): compare_datasets(self, source_dataset, parsed_dataset, require_media=True) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "mnist_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("mnist_dataset") class MnistImporterTest(TestCase): diff --git a/tests/test_mot_format.py b/tests/unit/test_mot_format.py similarity index 97% rename from tests/test_mot_format.py rename to tests/unit/test_mot_format.py index f40b8f1f7c..29b6c65c16 100644 --- a/tests/test_mot_format.py +++ b/tests/unit/test_mot_format.py @@ -11,8 +11,8 @@ from datumaro.components.media import Image from datumaro.plugins.mot_format import MotSeqGtConverter, MotSeqImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, check_save_and_load, compare_datasets @@ -307,10 +307,8 @@ def test_can_save_and_load_with_meta_file(self): self.assertTrue(osp.isfile(osp.join(test_dir, "dataset_meta.json"))) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "mot_dataset", "mot_seq") -DUMMY_SEQINFO_DATASET_DIR = osp.join( - osp.dirname(__file__), "assets", "mot_dataset", "mot_seq_with_seqinfo" -) +DUMMY_DATASET_DIR = get_test_asset_path("mot_dataset", "mot_seq") +DUMMY_SEQINFO_DATASET_DIR = get_test_asset_path("mot_dataset", "mot_seq_with_seqinfo") class MotImporterTest(TestCase): diff --git a/tests/test_mots_format.py b/tests/unit/test_mots_format.py similarity index 98% rename from tests/test_mots_format.py rename to tests/unit/test_mots_format.py index 91ba68f228..ca42987baf 100644 --- a/tests/test_mots_format.py +++ b/tests/unit/test_mots_format.py @@ -11,11 +11,11 @@ from datumaro.components.media import Image from datumaro.plugins.mots_format import MotsImporter, MotsPngConverter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, check_save_and_load, compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "mots_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("mots_dataset") class MotsPngConverterTest(TestCase): diff --git a/tests/test_mpii_format.py b/tests/unit/test_mpii_format.py similarity index 98% rename from tests/test_mpii_format.py rename to tests/unit/test_mpii_format.py index 4ae2329aa3..38de5bd17c 100644 --- a/tests/test_mpii_format.py +++ b/tests/unit/test_mpii_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -14,11 +13,11 @@ MpiiImporter, ) -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "mpii_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("mpii_dataset") class MpiiImporterTest(TestCase): diff --git a/tests/test_mpii_json_format.py b/tests/unit/test_mpii_json_format.py similarity index 97% rename from tests/test_mpii_json_format.py rename to tests/unit/test_mpii_json_format.py index ba9adb7789..1bea63a1ee 100644 --- a/tests/test_mpii_json_format.py +++ b/tests/unit/test_mpii_json_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -14,15 +13,15 @@ MpiiJsonImporter, ) -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR_WITH_NUMPY_FILES = osp.join( - osp.dirname(__file__), "assets", "mpii_json_dataset", "dataset_with_numpy_files" +DUMMY_DATASET_DIR_WITH_NUMPY_FILES = get_test_asset_path( + "mpii_json_dataset", "dataset_with_numpy_files" ) -DUMMY_DATASET_DIR_WO_NUMPY_FILES = osp.join( - osp.dirname(__file__), "assets", "mpii_json_dataset", "dataset_wo_numpy_files" +DUMMY_DATASET_DIR_WO_NUMPY_FILES = get_test_asset_path( + "mpii_json_dataset", "dataset_wo_numpy_files" ) diff --git a/tests/test_ndr.py b/tests/unit/test_ndr.py similarity index 99% rename from tests/test_ndr.py rename to tests/unit/test_ndr.py index c29e8f7cfc..6d054debb8 100644 --- a/tests/test_ndr.py +++ b/tests/unit/test_ndr.py @@ -8,7 +8,7 @@ from datumaro.components.media import Image from datumaro.components.project import Dataset -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement class NDRTest(TestCase): diff --git a/tests/test_nyu_depth_v2_format.py b/tests/unit/test_nyu_depth_v2_format.py similarity index 89% rename from tests/test_nyu_depth_v2_format.py rename to tests/unit/test_nyu_depth_v2_format.py index 7a51177c52..5965b6bdd1 100644 --- a/tests/test_nyu_depth_v2_format.py +++ b/tests/unit/test_nyu_depth_v2_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -10,11 +9,11 @@ from datumaro.components.media import Image from datumaro.plugins.nyu_depth_v2_format import NyuDepthV2Importer -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "nyu_depth_v2_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("nyu_depth_v2_dataset") class NyuDepthV2ImporterTest(TestCase): diff --git a/tests/test_open_images_format.py b/tests/unit/test_open_images_format.py similarity index 98% rename from tests/test_open_images_format.py rename to tests/unit/test_open_images_format.py index 9d5bf4edeb..f1277eb037 100644 --- a/tests/test_open_images_format.py +++ b/tests/unit/test_open_images_format.py @@ -16,8 +16,8 @@ from datumaro.components.media import Image from datumaro.plugins.open_images_format import OpenImagesConverter, OpenImagesImporter -from tests.conftest import ASSETS_DIR from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -309,8 +309,8 @@ def test_can_save_and_load_with_meta_file(self): compare_datasets(self, dataset, parsed_dataset, require_media=True) -DUMMY_DATASET_DIR_V6 = str(ASSETS_DIR / "open_images_dataset" / "v6") -DUMMY_DATASET_DIR_V5 = str(ASSETS_DIR / "open_images_dataset" / "v5") +DUMMY_DATASET_DIR_V6 = get_test_asset_path("open_images_dataset", "v6") +DUMMY_DATASET_DIR_V5 = get_test_asset_path("open_images_dataset", "v5") class OpenImagesImporterTest(TestCase): diff --git a/tests/test_ops.py b/tests/unit/test_ops.py similarity index 99% rename from tests/test_ops.py rename to tests/unit/test_ops.py index ca06c2176c..c420219798 100644 --- a/tests/test_ops.py +++ b/tests/unit/test_ops.py @@ -32,8 +32,8 @@ mean_std, ) -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets @@ -1004,7 +1004,7 @@ def test_can_merge_categories(self): @mark_requirement(Requirements.DATUM_GENERAL_REQ) def test_can_merge_point_clouds(self): - dataset_dir = osp.join(osp.dirname(__file__), "assets", "sly_pointcloud_dataset") + dataset_dir = get_test_asset_path("sly_pointcloud_dataset") pcd1 = osp.join(dataset_dir, "ds0", "pointcloud", "frame1.pcd") pcd2 = osp.join(dataset_dir, "ds0", "pointcloud", "frame2.pcd") diff --git a/tests/test_project.py b/tests/unit/test_project.py similarity index 99% rename from tests/test_project.py rename to tests/unit/test_project.py index cb8547eda9..74d01351e9 100644 --- a/tests/test_project.py +++ b/tests/unit/test_project.py @@ -31,8 +31,8 @@ from datumaro.components.project import DiffStatus, Project from datumaro.util.scope import scope_add, scoped -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets, compare_dirs @@ -1348,9 +1348,7 @@ def test_can_migrate_old_project(self): test_dir = scope_add(TestDir()) old_proj_dir = osp.join(test_dir, "old_proj") new_proj_dir = osp.join(test_dir, "new_proj") - shutil.copytree( - osp.join(osp.dirname(__file__), "assets", "compat", "v0.1", "project"), old_proj_dir - ) + shutil.copytree(get_test_asset_path("compat", "v0.1", "project"), old_proj_dir) with self.assertLogs(None) as logs: Project.migrate_from_v1_to_v2(old_proj_dir, new_proj_dir, skip_import_errors=True) @@ -1366,9 +1364,7 @@ def test_can_migrate_old_project(self): def test_cant_load_old_project(self): test_dir = scope_add(TestDir()) proj_dir = osp.join(test_dir, "old_proj") - shutil.copytree( - osp.join(osp.dirname(__file__), "assets", "compat", "v0.1", "project"), proj_dir - ) + shutil.copytree(get_test_asset_path("compat", "v0.1", "project"), proj_dir) with self.assertRaises(OldProjectError): scope_add(Project(proj_dir)) diff --git a/tests/test_sampler.py b/tests/unit/test_sampler.py similarity index 99% rename from tests/test_sampler.py rename to tests/unit/test_sampler.py index 1dac374f90..fe3df03222 100644 --- a/tests/test_sampler.py +++ b/tests/unit/test_sampler.py @@ -12,8 +12,7 @@ from datumaro.components.project import Dataset from datumaro.plugins.sampler.random_sampler import LabelRandomSampler, RandomSampler -from .conftest import ASSETS_DIR - +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets, compare_datasets_strict try: @@ -26,7 +25,7 @@ except ImportError: has_libs = False -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement @skipIf(not has_libs, "pandas library is not available") @@ -34,8 +33,8 @@ class TestRelevancySampler(TestCase): @staticmethod def _get_probs(out_range=False): probs = [] - inference_file = ASSETS_DIR / "sampler" / "inference.csv" - with inference_file.open() as csv_file: + inference_file = get_test_asset_path("sampler", "inference.csv") + with open(inference_file) as csv_file: csv_reader = csv.reader(csv_file) col = 0 for row in csv_reader: diff --git a/tests/test_sly_pointcloud_format.py b/tests/unit/test_sly_pointcloud_format.py similarity index 98% rename from tests/test_sly_pointcloud_format.py rename to tests/unit/test_sly_pointcloud_format.py index 79025c87c5..5a452a5010 100644 --- a/tests/test_sly_pointcloud_format.py +++ b/tests/unit/test_sly_pointcloud_format.py @@ -11,11 +11,11 @@ from datumaro.plugins.sly_pointcloud_format.converter import SuperviselyPointCloudConverter from datumaro.plugins.sly_pointcloud_format.extractor import SuperviselyPointCloudImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import Dimensions, TestDir, check_save_and_load, compare_datasets_3d -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "sly_pointcloud_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("sly_pointcloud_dataset") class SuperviselyPointcloudImporterTest(TestCase): diff --git a/tests/test_splitter.py b/tests/unit/test_splitter.py similarity index 99% rename from tests/test_splitter.py rename to tests/unit/test_splitter.py index 1b0d35439c..a22195229f 100644 --- a/tests/test_splitter.py +++ b/tests/unit/test_splitter.py @@ -16,7 +16,7 @@ from datumaro.components.operations import compute_ann_statistics from datumaro.components.project import Dataset -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement class SplitterTest(TestCase): diff --git a/tests/test_telemetry_utils.py b/tests/unit/test_telemetry_utils.py similarity index 97% rename from tests/test_telemetry_utils.py rename to tests/unit/test_telemetry_utils.py index b0be4dd58b..b7b2055864 100644 --- a/tests/test_telemetry_utils.py +++ b/tests/unit/test_telemetry_utils.py @@ -10,7 +10,7 @@ send_version_info, ) -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement try: import openvino_telemetry as tm diff --git a/tests/test_tfrecord_format.py b/tests/unit/test_tfrecord_format.py similarity index 98% rename from tests/test_tfrecord_format.py rename to tests/unit/test_tfrecord_format.py index f96b215c86..1d0abc4a81 100644 --- a/tests/test_tfrecord_format.py +++ b/tests/unit/test_tfrecord_format.py @@ -13,8 +13,8 @@ from datumaro.util.image import encode_image from datumaro.util.tf_util import check_import -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, check_save_and_load, compare_datasets try: @@ -307,7 +307,7 @@ def test_labelmap_parsing(self): self.assertEqual(expected, parsed) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "tf_detection_api_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("tf_detection_api_dataset") @skipIf(import_failed, "Failed to import tensorflow") diff --git a/tests/test_transforms.py b/tests/unit/test_transforms.py similarity index 99% rename from tests/test_transforms.py rename to tests/unit/test_transforms.py index 06366fc150..1f062302b7 100644 --- a/tests/test_transforms.py +++ b/tests/unit/test_transforms.py @@ -26,8 +26,7 @@ from datumaro.components.extractor import DatasetItem from datumaro.components.media import Image -from .requirements import Requirements, mark_bug, mark_requirement - +from tests.requirements import Requirements, mark_bug, mark_requirement from tests.utils.test_utils import compare_datasets diff --git a/tests/test_util.py b/tests/unit/test_util.py similarity index 98% rename from tests/test_util.py rename to tests/unit/test_util.py index e947e84bd4..32fb49ec5a 100644 --- a/tests/test_util.py +++ b/tests/unit/test_util.py @@ -7,8 +7,7 @@ from datumaro.util.os_util import walk from datumaro.util.scope import Scope, on_error_do, on_exit_do, scoped -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir diff --git a/tests/test_validator.py b/tests/unit/test_validator.py similarity index 99% rename from tests/test_validator.py rename to tests/unit/test_validator.py index 8671657935..df39649507 100644 --- a/tests/test_validator.py +++ b/tests/unit/test_validator.py @@ -42,7 +42,7 @@ _TaskValidator, ) -from .requirements import Requirements, mark_requirement +from tests.requirements import Requirements, mark_requirement class _TestValidatorBase(TestCase): diff --git a/tests/test_vgg_face2_format.py b/tests/unit/test_vgg_face2_format.py similarity index 98% rename from tests/test_vgg_face2_format.py rename to tests/unit/test_vgg_face2_format.py index e487776ac9..422059cae5 100644 --- a/tests/test_vgg_face2_format.py +++ b/tests/unit/test_vgg_face2_format.py @@ -10,8 +10,8 @@ from datumaro.components.media import Image from datumaro.plugins.vgg_face2_format import VggFace2Converter, VggFace2Importer -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import TestDir, compare_datasets @@ -275,7 +275,7 @@ def test_can_save_and_load_with_meta_file(self): compare_datasets(self, source_dataset, parsed_dataset) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "vgg_face2_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("vgg_face2_dataset") class VggFace2ImporterTest(TestCase): diff --git a/tests/test_video.py b/tests/unit/test_video.py similarity index 91% rename from tests/test_video.py rename to tests/unit/test_video.py index 56757b60d9..b674c345f9 100644 --- a/tests/test_video.py +++ b/tests/unit/test_video.py @@ -1,7 +1,6 @@ import os.path as osp from unittest import TestCase -import cv2 import numpy as np import pytest @@ -12,29 +11,9 @@ from datumaro.components.project import Project from datumaro.util.scope import Scope, on_exit_do, scope_add, scoped -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement from tests.utils.test_utils import TestDir, compare_datasets - - -@scoped -def make_sample_video(path, frames=4, frame_size=(10, 20), fps=25.0): - """ - frame_size is (H, W), only even sides - """ - - writer = cv2.VideoWriter( - path, - frameSize=tuple(frame_size[::-1]), - fps=float(fps), - fourcc=cv2.VideoWriter_fourcc(*"MJPG"), - ) - on_exit_do(writer.release) - - for i in range(frames): - # Apparently, only uint8 values are supported, but not floats - # Colors are compressed, but grayscale colors suffer no loss - writer.write(np.ones((*frame_size, 3), dtype=np.uint8) * i) +from tests.utils.video import make_sample_video @pytest.fixture(scope="module") diff --git a/tests/test_voc_format.py b/tests/unit/test_voc_format.py similarity index 99% rename from tests/test_voc_format.py rename to tests/unit/test_voc_format.py index 19b33a51b3..e31cecdd54 100644 --- a/tests/test_voc_format.py +++ b/tests/unit/test_voc_format.py @@ -41,8 +41,8 @@ from datumaro.util.image import save_image from datumaro.util.mask_tools import load_mask -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import ( TestDir, check_save_and_load, @@ -149,9 +149,9 @@ def categories(self): return VOC.make_voc_categories() -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "voc_dataset", "voc_dataset1") -DUMMY_DATASET2_DIR = osp.join(osp.dirname(__file__), "assets", "voc_dataset", "voc_dataset2") -DUMMY_DATASET3_DIR = osp.join(osp.dirname(__file__), "assets", "voc_dataset", "voc_dataset3") +DUMMY_DATASET_DIR = get_test_asset_path("voc_dataset", "voc_dataset1") +DUMMY_DATASET2_DIR = get_test_asset_path("voc_dataset", "voc_dataset2") +DUMMY_DATASET3_DIR = get_test_asset_path("voc_dataset", "voc_dataset3") class VocImportTest(TestCase): diff --git a/tests/test_vott_csv_format.py b/tests/unit/test_vott_csv_format.py similarity index 91% rename from tests/test_vott_csv_format.py rename to tests/unit/test_vott_csv_format.py index 5e70b09aac..d3a3838971 100644 --- a/tests/test_vott_csv_format.py +++ b/tests/unit/test_vott_csv_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -10,14 +9,12 @@ from datumaro.components.media import Image from datumaro.plugins.vott_csv_format import VottCsvImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "vott_csv_dataset", "dataset") -DUMMY_DATASET_DIR_WITH_META_FILE = osp.join( - osp.dirname(__file__), "assets", "vott_csv_dataset", "dataset_with_meta_file" -) +DUMMY_DATASET_DIR = get_test_asset_path("vott_csv_dataset", "dataset") +DUMMY_DATASET_DIR_WITH_META_FILE = get_test_asset_path("vott_csv_dataset", "dataset_with_meta_file") class VottCsvImporterTest(TestCase): diff --git a/tests/test_vott_json_format.py b/tests/unit/test_vott_json_format.py similarity index 93% rename from tests/test_vott_json_format.py rename to tests/unit/test_vott_json_format.py index bc98c5d3f0..18dcdb592c 100644 --- a/tests/test_vott_json_format.py +++ b/tests/unit/test_vott_json_format.py @@ -1,4 +1,3 @@ -import os.path as osp from unittest import TestCase import numpy as np @@ -10,13 +9,13 @@ from datumaro.components.media import Image from datumaro.plugins.vott_json_format import VottJsonImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import compare_datasets -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "vott_json_dataset", "dataset") -DUMMY_DATASET_DIR_WITH_META_FILE = osp.join( - osp.dirname(__file__), "assets", "vott_json_dataset", "dataset_with_meta_file" +DUMMY_DATASET_DIR = get_test_asset_path("vott_json_dataset", "dataset") +DUMMY_DATASET_DIR_WITH_META_FILE = get_test_asset_path( + "vott_json_dataset", "dataset_with_meta_file" ) diff --git a/tests/test_widerface_format.py b/tests/unit/test_widerface_format.py similarity index 99% rename from tests/test_widerface_format.py rename to tests/unit/test_widerface_format.py index 08d94a0fe8..4b12f71ec3 100644 --- a/tests/test_widerface_format.py +++ b/tests/unit/test_widerface_format.py @@ -11,8 +11,8 @@ from datumaro.components.media import Image from datumaro.plugins.widerface_format import WiderFaceConverter, WiderFaceImporter -from .requirements import Requirements, mark_requirement - +from tests.requirements import Requirements, mark_requirement +from tests.utils.assets import get_test_asset_path from tests.utils.test_utils import IGNORE_ALL, TestDir, compare_datasets @@ -400,7 +400,7 @@ def test_inplace_save_writes_only_updated_data(self): ) -DUMMY_DATASET_DIR = osp.join(osp.dirname(__file__), "assets", "widerface_dataset") +DUMMY_DATASET_DIR = get_test_asset_path("widerface_dataset") class WiderFaceImporterTest(TestCase): diff --git a/tests/utils/video.py b/tests/utils/video.py new file mode 100644 index 0000000000..5d3c304710 --- /dev/null +++ b/tests/utils/video.py @@ -0,0 +1,29 @@ +# Copyright (C) 2023 Intel Corporation +# +# SPDX-License-Identifier: MIT + + +import cv2 +import numpy as np + +from datumaro.util.scope import on_exit_do, scoped + + +@scoped +def make_sample_video(path, frames=4, frame_size=(10, 20), fps=25.0): + """ + frame_size is (H, W), only even sides + """ + + writer = cv2.VideoWriter( + path, + frameSize=tuple(frame_size[::-1]), + fps=float(fps), + fourcc=cv2.VideoWriter_fourcc(*"MJPG"), + ) + on_exit_do(writer.release) + + for i in range(frames): + # Apparently, only uint8 values are supported, but not floats + # Colors are compressed, but grayscale colors suffer no loss + writer.write(np.ones((*frame_size, 3), dtype=np.uint8) * i)