diff --git a/requirements/extras/test_requirements.txt b/requirements/extras/test_requirements.txt index 477103ab1d..36ee0ae12d 100644 --- a/requirements/extras/test_requirements.txt +++ b/requirements/extras/test_requirements.txt @@ -1,10 +1,11 @@ tox==3.24.5 +setuptools<72.0.0 numpy>=2.0.0, <3.0 build[virtualenv]==1.2.1 flake8==7.1.2 pytest==6.2.5 pytest-cov==3.0.0 -pytest-rerunfailures==10.2 +pytest-rerunfailures<14.0,>=11.0 pytest-timeout==2.1.0 pytest-xdist==2.4.0 coverage>=5.2, <6.2 diff --git a/tests/data/multimodel/container/Dockerfile b/tests/data/multimodel/container/Dockerfile index 71c38a6605..1f445ec469 100644 --- a/tests/data/multimodel/container/Dockerfile +++ b/tests/data/multimodel/container/Dockerfile @@ -23,7 +23,8 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 RUN update-alternatives --install /usr/local/bin/pip pip /usr/local/bin/pip3 1 # Install MXNet, MMS, and SageMaker Inference Toolkit to set up MMS -RUN pip3 --no-cache-dir install mxnet \ +RUN pip3 --no-cache-dir install 'setuptools<72.0.0' \ + mxnet \ multi-model-server \ sagemaker-inference \ retrying diff --git a/tests/unit/sagemaker/feature_store/test_dataset_builder.py b/tests/unit/sagemaker/feature_store/test_dataset_builder.py index 083453baf0..02a8a8128e 100644 --- a/tests/unit/sagemaker/feature_store/test_dataset_builder.py +++ b/tests/unit/sagemaker/feature_store/test_dataset_builder.py @@ -31,7 +31,9 @@ @pytest.fixture def sagemaker_session_mock(): - return Mock() + mock = Mock() + mock.sagemaker_config = None + return mock @pytest.fixture diff --git a/tests/unit/sagemaker/feature_store/test_feature_group.py b/tests/unit/sagemaker/feature_store/test_feature_group.py index 5155a802d4..a12d466ee1 100644 --- a/tests/unit/sagemaker/feature_store/test_feature_group.py +++ b/tests/unit/sagemaker/feature_store/test_feature_group.py @@ -68,7 +68,7 @@ def s3_uri(): @pytest.fixture def sagemaker_session_mock(): sagemaker_session_mock = Mock() - sagemaker_session_mock.sagemaker_config = {} + sagemaker_session_mock.sagemaker_config = None return sagemaker_session_mock diff --git a/tests/unit/sagemaker/feature_store/test_feature_store.py b/tests/unit/sagemaker/feature_store/test_feature_store.py index 8c1c8e6554..b1a3db4f6b 100644 --- a/tests/unit/sagemaker/feature_store/test_feature_store.py +++ b/tests/unit/sagemaker/feature_store/test_feature_store.py @@ -33,7 +33,9 @@ @pytest.fixture def sagemaker_session_mock(): - return Mock() + mock = Mock() + mock.sagemaker_config = None + return mock @pytest.fixture diff --git a/tests/unit/sagemaker/feature_store/test_feature_utils.py b/tests/unit/sagemaker/feature_store/test_feature_utils.py index db6d90b77b..8eef3a3aed 100644 --- a/tests/unit/sagemaker/feature_store/test_feature_utils.py +++ b/tests/unit/sagemaker/feature_store/test_feature_utils.py @@ -42,7 +42,9 @@ def __reduce__(self): @pytest.fixture def sagemaker_session_mock(): """Fixture Mock class""" - return Mock() + mock = Mock() + mock.sagemaker_config = None + return mock def test_convert_unsupported_types_to_supported(sagemaker_session_mock): diff --git a/tests/unit/sagemaker/lineage/test_artifact.py b/tests/unit/sagemaker/lineage/test_artifact.py index 218532c1b7..44274dec3e 100644 --- a/tests/unit/sagemaker/lineage/test_artifact.py +++ b/tests/unit/sagemaker/lineage/test_artifact.py @@ -323,7 +323,12 @@ def test_create_delete_with_association(sagemaker_session): ) -def test_downstream_trials(sagemaker_session): +@unittest.mock.patch("sagemaker.lineage.artifact.get_module") +def test_downstream_trials(mock_get_module, sagemaker_session): + # Mock smexperiments module + mock_smexperiments = unittest.mock.MagicMock() + mock_get_module.return_value = mock_smexperiments + sagemaker_session.sagemaker_client.list_associations.side_effect = [ { "AssociationSummaries": [ @@ -379,7 +384,12 @@ def test_downstream_trials(sagemaker_session): assert expected_calls == sagemaker_session.sagemaker_client.list_associations.mock_calls -def test_downstream_trials_v2(sagemaker_session): +@unittest.mock.patch("sagemaker.lineage.artifact.get_module") +def test_downstream_trials_v2(mock_get_module, sagemaker_session): + # Mock smexperiments module + mock_smexperiments = unittest.mock.MagicMock() + mock_get_module.return_value = mock_smexperiments + sagemaker_session.sagemaker_client.query_lineage.return_value = { "Vertices": [ {"Arn": "B" + str(i), "Type": "DataSet", "LineageType": "Artifact"} for i in range(10) @@ -425,7 +435,12 @@ def test_downstream_trials_v2(sagemaker_session): assert expected_calls == sagemaker_session.sagemaker_client.query_lineage.mock_calls -def test_upstream_trials(sagemaker_session): +@unittest.mock.patch("sagemaker.lineage.artifact.get_module") +def test_upstream_trials(mock_get_module, sagemaker_session): + # Mock smexperiments module + mock_smexperiments = unittest.mock.MagicMock() + mock_get_module.return_value = mock_smexperiments + sagemaker_session.sagemaker_client.query_lineage.return_value = { "Vertices": [ {"Arn": "B" + str(i), "Type": "DataSet", "LineageType": "Artifact"} for i in range(10) diff --git a/tests/unit/sagemaker/workflow/test_callback_step.py b/tests/unit/sagemaker/workflow/test_callback_step.py index b61cc82b76..ba62260308 100644 --- a/tests/unit/sagemaker/workflow/test_callback_step.py +++ b/tests/unit/sagemaker/workflow/test_callback_step.py @@ -28,6 +28,7 @@ def sagemaker_session_mock(): session_mock = Mock() session_mock.boto_session.client = Mock() + session_mock.sagemaker_config = None return session_mock diff --git a/tests/unit/test_mxnet.py b/tests/unit/test_mxnet.py index 2c47356921..90814cbdb1 100644 --- a/tests/unit/test_mxnet.py +++ b/tests/unit/test_mxnet.py @@ -19,7 +19,7 @@ import pytest from mock import MagicMock, Mock, ANY from mock import patch -from pkg_resources import parse_version +from packaging.version import parse as parse_version from sagemaker.fw_utils import UploadedCode from sagemaker.drift_check_baselines import DriftCheckBaselines diff --git a/tox.ini b/tox.ini index 76837104aa..63073cebc7 100644 --- a/tox.ini +++ b/tox.ini @@ -94,6 +94,7 @@ commands = pytest {posargs} deps = + setuptools<72.0.0 .[test] asyncio nest_asyncio