Example #1
0
def test_list_monitors_unknown_monitoring_type():
    sagemaker_session = empty_sagemaker_session()
    sagemaker_session.list_monitoring_schedules = Mock(
        return_value={
            "MonitoringScheduleSummaries": [
                {
                    "MonitoringScheduleName": "model-explainability-monitor",
                    "MonitoringType": "UnknownType",
                },
            ]
        })
    sagemaker_session.describe_monitoring_schedule = Mock(side_effect=[
        {
            "MonitoringScheduleConfig": {
                "MonitoringType": "UnknownType",
                "MonitoringJobDefinitionName": "unknown-job-definition",
            }
        },
    ])
    predictor = Predictor(ENDPOINT, sagemaker_session=sagemaker_session)
    with pytest.raises(TypeError):
        predictor.list_monitors()
Example #2
0
def test_list_monitors(default_model_monitor_attach, *attach_methods):
    sagemaker_session = empty_sagemaker_session()
    sagemaker_session.list_monitoring_schedules = Mock(
        return_value={
            "MonitoringScheduleSummaries": [
                {
                    "MonitoringScheduleName": "default-monitor",
                },
                {
                    "MonitoringScheduleName": "byoc-monitor",
                },
                {
                    "MonitoringScheduleName": "data-quality-monitor",
                    "MonitoringType": "DataQuality",
                },
                {
                    "MonitoringScheduleName": "model-quality-monitor",
                    "MonitoringType": "ModelQuality",
                },
                {
                    "MonitoringScheduleName": "model-bias-monitor",
                    "MonitoringType": "ModelBias",
                },
                {
                    "MonitoringScheduleName": "model-explainability-monitor",
                    "MonitoringType": "ModelExplainability",
                },
            ]
        })
    sagemaker_session.describe_monitoring_schedule = Mock(side_effect=[
        {
            "MonitoringScheduleConfig": {
                "MonitoringJobDefinition": {
                    "MonitoringAppSpecification": {
                        "ImageUri": DEFAULT_REPOSITORY_NAME,
                    }
                }
            }
        },
        {
            "MonitoringScheduleConfig": {
                "MonitoringJobDefinition": {
                    "MonitoringAppSpecification": {
                        "ImageUri": "byoc-image",
                    }
                }
            }
        },
        {
            "MonitoringScheduleConfig": {
                "MonitoringType": "DataQuality",
                "MonitoringJobDefinitionName": "data-quality-job-definition",
            }
        },
        {
            "MonitoringScheduleConfig": {
                "MonitoringType": "ModelQuality",
                "MonitoringJobDefinitionName": "model-quality-job-definition",
            }
        },
    ])
    predictor = Predictor(ENDPOINT, sagemaker_session=sagemaker_session)
    predictor.list_monitors()
    for attach_method in attach_methods:
        attach_method.assert_called_once()
    assert default_model_monitor_attach.call_count == 2