From a6476666c809519822b25b5882641e007c899fb3 Mon Sep 17 00:00:00 2001 From: vfdev-5 Date: Fri, 17 Feb 2023 16:43:33 +0100 Subject: [PATCH 1/3] Revert "Remove check_v2_dataset_warnings.py which is failing (#7280)" This reverts commit a192c95e77a4a4de3a8aeee45130ddc4d2773a83. --- .github/workflows/test-linux-cpu.yml | 6 ++++++ test/check_v2_dataset_warnings.py | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 test/check_v2_dataset_warnings.py diff --git a/.github/workflows/test-linux-cpu.yml b/.github/workflows/test-linux-cpu.yml index 19521cdd011..68ebc54f2d1 100644 --- a/.github/workflows/test-linux-cpu.yml +++ b/.github/workflows/test-linux-cpu.yml @@ -55,3 +55,9 @@ jobs: # Run Tests python3 -m torch.utils.collect_env python3 -m pytest --junitxml=test-results/junit.xml -v --durations 20 + + # Specific test for warnings on "from torchvision.datasets import wrap_dataset_for_transforms_v2" + # We keep them separate to avoid any side effects due to warnings / imports. + # TODO: Remove this and add proper tests (possibly using a sub-process solution as described + # in https://github.com/pytorch/vision/pull/7269). + python3 -m pytest -v test/check_v2_dataset_warnings.py diff --git a/test/check_v2_dataset_warnings.py b/test/check_v2_dataset_warnings.py new file mode 100644 index 00000000000..8bb53ee3434 --- /dev/null +++ b/test/check_v2_dataset_warnings.py @@ -0,0 +1,19 @@ +import pytest + + +def test_warns_if_imported_from_datasets(mocker): + mocker.patch("torchvision._WARN_ABOUT_BETA_TRANSFORMS", return_value=True) + + import torchvision + + with pytest.warns(UserWarning, match=torchvision._BETA_TRANSFORMS_WARNING): + from torchvision.datasets import wrap_dataset_for_transforms_v2 + + assert callable(wrap_dataset_for_transforms_v2) + + +@pytest.mark.filterwarnings("error") +def test_no_warns_if_imported_from_datasets(): + from torchvision.datasets import wrap_dataset_for_transforms_v2 + + assert callable(wrap_dataset_for_transforms_v2) From a7bd1eb87e2d043c94fa0689168122f08e26910e Mon Sep 17 00:00:00 2001 From: vfdev-5 Date: Fri, 17 Feb 2023 16:45:06 +0100 Subject: [PATCH 2/3] Updated test/check_v2_dataset_warnings.py such we do not rely on pytest --- .github/workflows/test-linux-cpu.yml | 2 +- test/check_v2_dataset_warnings.py | 34 ++++++++++++++++++++-------- test/conftest.py | 5 ++-- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/.github/workflows/test-linux-cpu.yml b/.github/workflows/test-linux-cpu.yml index 68ebc54f2d1..456f4dfdd99 100644 --- a/.github/workflows/test-linux-cpu.yml +++ b/.github/workflows/test-linux-cpu.yml @@ -60,4 +60,4 @@ jobs: # We keep them separate to avoid any side effects due to warnings / imports. # TODO: Remove this and add proper tests (possibly using a sub-process solution as described # in https://github.com/pytorch/vision/pull/7269). - python3 -m pytest -v test/check_v2_dataset_warnings.py + python3 test/check_v2_dataset_warnings.py diff --git a/test/check_v2_dataset_warnings.py b/test/check_v2_dataset_warnings.py index 8bb53ee3434..e17f2a0be64 100644 --- a/test/check_v2_dataset_warnings.py +++ b/test/check_v2_dataset_warnings.py @@ -1,19 +1,35 @@ -import pytest +import warnings +import torchvision -def test_warns_if_imported_from_datasets(mocker): - mocker.patch("torchvision._WARN_ABOUT_BETA_TRANSFORMS", return_value=True) - import torchvision - - with pytest.warns(UserWarning, match=torchvision._BETA_TRANSFORMS_WARNING): +def test_warns_if_imported_from_datasets(): + with warnings.catch_warnings(record=True) as w: from torchvision.datasets import wrap_dataset_for_transforms_v2 assert callable(wrap_dataset_for_transforms_v2) + assert len(w) == 2 + assert "torchvision.transforms.v2" in str(w[-1].message) + -@pytest.mark.filterwarnings("error") def test_no_warns_if_imported_from_datasets(): - from torchvision.datasets import wrap_dataset_for_transforms_v2 - assert callable(wrap_dataset_for_transforms_v2) + torchvision.disable_beta_transforms_warning() + + with warnings.catch_warnings(): + warnings.simplefilter("error") + + from torchvision.datasets import wrap_dataset_for_transforms_v2 + + assert callable(wrap_dataset_for_transforms_v2) + + from torchvision.datasets import cifar + + assert hasattr(cifar, "CIFAR10") + + +if __name__ == "__main__": + # We can't rely on pytest due to various side-effects, e.g. conftest etc + test_warns_if_imported_from_datasets() + test_no_warns_if_imported_from_datasets() diff --git a/test/conftest.py b/test/conftest.py index b3ab70af650..12d509ac43a 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -4,11 +4,10 @@ import pytest import torch import torchvision -from common_utils import CUDA_NOT_AVAILABLE_MSG, IN_FBCODE, IN_OSS_CI, IN_RE_WORKER, OSS_CI_GPU_NO_CUDA_MSG - - torchvision.disable_beta_transforms_warning() +from common_utils import CUDA_NOT_AVAILABLE_MSG, IN_FBCODE, IN_OSS_CI, IN_RE_WORKER, OSS_CI_GPU_NO_CUDA_MSG + def pytest_configure(config): # register an additional marker (see pytest_collection_modifyitems) From 179ba51a8cd101229b60fa311050510acdae85e7 Mon Sep 17 00:00:00 2001 From: vfdev-5 Date: Mon, 20 Feb 2023 10:05:10 +0100 Subject: [PATCH 3/3] Fixed lint --- test/conftest.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/conftest.py b/test/conftest.py index 12d509ac43a..5408c21a549 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -4,6 +4,7 @@ import pytest import torch import torchvision + torchvision.disable_beta_transforms_warning() from common_utils import CUDA_NOT_AVAILABLE_MSG, IN_FBCODE, IN_OSS_CI, IN_RE_WORKER, OSS_CI_GPU_NO_CUDA_MSG