@@ -49,7 +49,9 @@ class TestAlertEvaluate(BaseTestCase):
4949 def create_alert (self , results , column = "foo" , value = "1" ):
5050 result = self .factory .create_query_result (data = results )
5151 query = self .factory .create_query (latest_query_data_id = result .id )
52- alert = self .factory .create_alert (query_rel = query , options = {"op" : "equals" , "column" : column , "value" : value })
52+ alert = self .factory .create_alert (
53+ query_rel = query , options = {"selector" : "first" , "op" : "equals" , "column" : column , "value" : value }
54+ )
5355 return alert
5456
5557 def test_evaluate_triggers_alert_when_equal (self ):
@@ -69,6 +71,24 @@ def test_evaluate_return_unknown_when_empty_results(self):
6971 alert = self .create_alert (results )
7072 self .assertEqual (alert .evaluate (), Alert .UNKNOWN_STATE )
7173
74+ def test_evaluates_correctly_with_max_selector (self ):
75+ results = {"rows" : [{"foo" : 1 }, {"foo" : 2 }], "columns" : [{"name" : "foo" , "type" : "STRING" }]}
76+ alert = self .create_alert (results )
77+ alert .options ["selector" ] = "max"
78+ self .assertEqual (alert .evaluate (), Alert .OK_STATE )
79+
80+ def test_evaluates_correctly_with_min_selector (self ):
81+ results = {"rows" : [{"foo" : 2 }, {"foo" : 1 }], "columns" : [{"name" : "foo" , "type" : "STRING" }]}
82+ alert = self .create_alert (results )
83+ alert .options ["selector" ] = "min"
84+ self .assertEqual (alert .evaluate (), Alert .TRIGGERED_STATE )
85+
86+ def test_evaluates_correctly_with_first_selector (self ):
87+ results = {"rows" : [{"foo" : 1 }, {"foo" : 2 }], "columns" : [{"name" : "foo" , "type" : "STRING" }]}
88+ alert = self .create_alert (results )
89+ alert .options ["selector" ] = "first"
90+ self .assertEqual (alert .evaluate (), Alert .TRIGGERED_STATE )
91+
7292
7393class TestNextState (TestCase ):
7494 def test_numeric_value (self ):
@@ -94,14 +114,17 @@ class TestAlertRenderTemplate(BaseTestCase):
94114 def create_alert (self , results , column = "foo" , value = "5" ):
95115 result = self .factory .create_query_result (data = results )
96116 query = self .factory .create_query (latest_query_data_id = result .id )
97- alert = self .factory .create_alert (query_rel = query , options = {"op" : "equals" , "column" : column , "value" : value })
117+ alert = self .factory .create_alert (
118+ query_rel = query , options = {"selector" : "first" , "op" : "equals" , "column" : column , "value" : value }
119+ )
98120 return alert
99121
100122 def test_render_custom_alert_template (self ):
101123 alert = self .create_alert (get_results (1 ))
102124 custom_alert = """
103125 <pre>
104126 ALERT_STATUS {{ALERT_STATUS}}
127+ ALERT_SELECTOR {{ALERT_SELECTOR}}
105128 ALERT_CONDITION {{ALERT_CONDITION}}
106129 ALERT_THRESHOLD {{ALERT_THRESHOLD}}
107130 ALERT_NAME {{ALERT_NAME}}
@@ -116,6 +139,7 @@ def test_render_custom_alert_template(self):
116139 expected = """
117140 <pre>
118141 ALERT_STATUS UNKNOWN
142+ ALERT_SELECTOR first
119143 ALERT_CONDITION equals
120144 ALERT_THRESHOLD 5
121145 ALERT_NAME %s
0 commit comments