1
- import pytest
2
1
from unittest .mock import patch
3
2
from sagemaker .model_monitor .dashboards import (
4
3
Variable ,
@@ -13,9 +12,9 @@ def test_variable_to_dict():
13
12
variable_type = "property" ,
14
13
variable_property = "Feature" ,
15
14
inputType = "select" ,
16
- id = "Feature" ,
15
+ variable_id = "Feature" ,
17
16
label = "Feature" ,
18
- search = AutomaticDataQualityDashboard . DATA_QUALITY_METRICS_ENDPOINT_NAMESPACE ,
17
+ search = "{aws/sagemaker/Endpoints/data-metrics,Endpoint,Feature,MonitoringSchedule}" ,
19
18
populateFrom = "Feature" ,
20
19
)
21
20
expected_dict = {
@@ -24,7 +23,7 @@ def test_variable_to_dict():
24
23
"inputType" : "select" ,
25
24
"id" : "Feature" ,
26
25
"label" : "Feature" ,
27
- "search" : AutomaticDataQualityDashboard . DATA_QUALITY_METRICS_ENDPOINT_NAMESPACE ,
26
+ "search" : "{aws/sagemaker/Endpoints/data-metrics,Endpoint,Feature,MonitoringSchedule}" ,
28
27
"populateFrom" : "Feature" ,
29
28
}
30
29
assert var .to_dict () == expected_dict
@@ -37,7 +36,7 @@ def test_widget_properties_to_dict():
37
36
metrics = [
38
37
[
39
38
{
40
- "expression" : f'SEARCH( \' { AutomaticDataQualityDashboard . DATA_QUALITY_METRICS_ENDPOINT_NAMESPACE } %^(feature_null_|feature_non_null_).*% Endpoint=" { self . endpoint } " Feature="_" MonitoringSchedule=" { self . monitoring_schedule } " \' , \' Average\' )'
39
+ "expression" : f'SEARCH( \' aws/sagemaker/Endpoints/data-metrics,Endpoint,Feature,MonitoringSchedule %^(feature_null_|feature_non_null_).*% \' , \' Average\' )'
41
40
}
42
41
]
43
42
],
@@ -50,7 +49,7 @@ def test_widget_properties_to_dict():
50
49
"metrics" : [
51
50
[
52
51
{
53
- "expression" : f'SEARCH( \' { AutomaticDataQualityDashboard . DATA_QUALITY_METRICS_ENDPOINT_NAMESPACE } %^(feature_null_|feature_non_null_).*% Endpoint=" { self . endpoint } " Feature="_" MonitoringSchedule=" { self . monitoring_schedule } " \' , \' Average\' )'
52
+ "expression" : f'SEARCH( \' aws/sagemaker/Endpoints/data-metrics,Endpoint,Feature,MonitoringSchedule %^(feature_null_|feature_non_null_).*% \' , \' Average\' )'
54
53
}
55
54
]
56
55
],
@@ -67,7 +66,7 @@ def test_widget_to_dict():
67
66
metrics = [
68
67
[
69
68
{
70
- "expression" : f'SEARCH( \' { AutomaticDataQualityDashboard . DATA_QUALITY_METRICS_ENDPOINT_NAMESPACE } %^(feature_null_|feature_non_null_).*% Endpoint=" { self . endpoint } " Feature="_" MonitoringSchedule=" { self . monitoring_schedule } " \' , \' Average\' )'
69
+ "expression" : f'SEARCH( \' aws/sagemaker/Endpoints/data-metrics,Endpoint,Feature,MonitoringSchedule %^(feature_null_|feature_non_null_).*% \' , \' Average\' )'
71
70
}
72
71
]
73
72
],
@@ -85,7 +84,7 @@ def test_widget_to_dict():
85
84
"metrics" : [
86
85
[
87
86
{
88
- "expression" : f'SEARCH( \' { AutomaticDataQualityDashboard . DATA_QUALITY_METRICS_ENDPOINT_NAMESPACE } %^(feature_null_|feature_non_null_).*% Endpoint=" { self . endpoint } " Feature="_" MonitoringSchedule=" { self . monitoring_schedule } " \' , \' Average\' )'
87
+ "expression" : f'SEARCH( \' aws/sagemaker/Endpoints/data-metrics,Endpoint,Feature,MonitoringSchedule %^(feature_null_|feature_non_null_).*% \' , \' Average\' )'
89
88
}
90
89
]
91
90
],
@@ -96,75 +95,47 @@ def test_widget_to_dict():
96
95
assert widget .to_dict () == expected_dict
97
96
98
97
99
- @patch ("sagemaker.model_monitor.dashboards.AutomaticDataQualityDashboard._generate_variables" )
100
- @patch (
101
- "sagemaker.model_monitor.dashboards.AutomaticDataQualityDashboard._generate_type_counts_widget"
102
- )
103
- @patch (
104
- "sagemaker.model_monitor.dashboards.AutomaticDataQualityDashboard._generate_null_counts_widget"
105
- )
106
- @patch (
107
- "sagemaker.model_monitor.dashboards.AutomaticDataQualityDashboard._generate_estimated_unique_values_widget"
108
- )
109
- @patch (
110
- "sagemaker.model_monitor.dashboards.AutomaticDataQualityDashboard._generate_completeness_widget"
111
- )
112
- @patch (
113
- "sagemaker.model_monitor.dashboards.AutomaticDataQualityDashboard._generate_baseline_drift_widget"
114
- )
115
- def test_automatic_data_quality_dashboard (
116
- mock_generate_variables ,
117
- mock_generate_type_counts_widget ,
118
- mock_generate_null_counts_widget ,
119
- mock_generate_estimated_unique_values_widget ,
120
- mock_generate_completeness_widget ,
121
- mock_generate_baseline_drift_widget ,
122
- ):
123
- mock_generate_variables .return_value = [
98
+ def test_automatic_data_quality_dashboard ():
99
+ mock_generate_variables = [
124
100
Variable (
125
101
variable_type = "property" ,
126
102
variable_property = "Feature" ,
127
103
inputType = "select" ,
128
- id = "Feature" ,
104
+ variable_id = "Feature" ,
129
105
label = "Feature" ,
130
106
search = AutomaticDataQualityDashboard .DATA_QUALITY_METRICS_ENDPOINT_NAMESPACE ,
131
107
populateFrom = "Feature" ,
132
108
)
133
109
]
134
- mock_generate_type_counts_widget . return_value = Widget (
110
+ mock_generate_type_counts_widget = Widget (
135
111
height = 8 , width = 12 , widget_type = "metric" , properties = WidgetProperties ()
136
112
)
137
- mock_generate_null_counts_widget . return_value = Widget (
113
+ mock_generate_null_counts_widget = Widget (
138
114
height = 8 , width = 12 , widget_type = "metric" , properties = WidgetProperties ()
139
115
)
140
- mock_generate_estimated_unique_values_widget . return_value = Widget (
116
+ mock_generate_estimated_unique_values_widget = Widget (
141
117
height = 8 , width = 12 , widget_type = "metric" , properties = WidgetProperties ()
142
118
)
143
- mock_generate_completeness_widget . return_value = Widget (
119
+ mock_generate_completeness_widget = Widget (
144
120
height = 8 , width = 12 , widget_type = "metric" , properties = WidgetProperties ()
145
121
)
146
- mock_generate_baseline_drift_widget . return_value = Widget (
122
+ mock_generate_baseline_drift_widget = Widget (
147
123
height = 8 , width = 12 , widget_type = "metric" , properties = WidgetProperties ()
148
124
)
149
125
150
- dashboard = AutomaticDataQualityDashboard (
151
- endpoint_name = "my-endpoint" ,
152
- monitoring_schedule_name = "my-schedule" ,
153
- batch_transform_input = False ,
154
- region_name = "us-east-1" ,
155
- )
126
+ dashboard = AutomaticDataQualityDashboard ("endpoint" , "monitoring_schedule" , None , "us-west-2" )
156
127
157
128
expected_dashboard = {
158
- "variables" : [var .to_dict () for var in mock_generate_variables . return_value ],
129
+ "variables" : [var .to_dict () for var in mock_generate_variables ],
159
130
"widgets" : [
160
- widget .to_dict ()
161
- for widget in [
162
- mock_generate_type_counts_widget .return_value ,
163
- mock_generate_null_counts_widget .return_value ,
164
- mock_generate_estimated_unique_values_widget .return_value ,
165
- mock_generate_completeness_widget .return_value ,
166
- mock_generate_baseline_drift_widget .return_value ,
131
+ widget .to_dict () for widget in [
132
+ mock_generate_type_counts_widget ,
133
+ mock_generate_null_counts_widget ,
134
+ mock_generate_estimated_unique_values_widget ,
135
+ mock_generate_completeness_widget ,
136
+ mock_generate_baseline_drift_widget ,
167
137
]
168
138
],
169
139
}
140
+
170
141
assert dashboard .to_dict () == expected_dashboard
0 commit comments